2017-09-24 76 views
1

我是firebase的新手,我正在尝试使用我的android应用程序。在我的应用程序中,我简单地在数据库上保存名称,这是非常基本的消息,显示数据已成功保存,但是当我试图在Firebase数据库控制台中查看它时,即使没有显示根网址,也不会显示任何内容。我还为读写权限设置了Firebase规则为true。数据未显示在Firebase数据库控制台中

请看看下面我的代码:

POJO类:

package com.app.elaryx; 

public class Data { 

String name; 

public Data(){ 

} 

public Data(String name){ 

    this.name = name; 
} 

public String getName() { 
    return name; 
} 

public void setName(String name) { 
    this.name = name; 
} 
} 

Java代码:

public class MainActivity extends AppCompatActivity { 

Button button; 
EditText name; 
DatabaseReference dRef; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    dRef = FirebaseDatabase.getInstance().getReference(); 

    button = (Button)findViewById(R.id.button); 
    name = (EditText)findViewById(R.id.name); 

    button.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View view) { 

      button.setText("Saving..."); 

      if(name.getText().toString().equals("")) 
      { 
       button.setText("SUBMIT"); 
       Toast.makeText(getApplicationContext(), "Enter name", Toast.LENGTH_SHORT).show(); 
      } 
      else { 
       Data d = new Data(); 

       d.setName(name.getText().toString()); 

       dRef.push().setValue(d).addOnCompleteListener(new OnCompleteListener<Void>() { 
        @Override 
        public void onComplete(@NonNull Task<Void> task) { 

         if (task.isSuccessful()) { 

          button.setText("SUBMIT"); 
          Toast.makeText(getApplicationContext(), "Data Saved", Toast.LENGTH_SHORT).show(); 
         } else { 

          button.setText("SUBMIT"); 
          Toast.makeText(getApplicationContext(), "" + task.getException().getMessage().toString(), Toast.LENGTH_SHORT).show(); 
         } 
        } 
       }); 

      } 
     } 
    }); 
    } 
} 

My Firebase console Image here

在代码中的一切似乎没什么问题。请让我知道问题

回答

0

你做了一个非常愚蠢的错误,因此你没有得到结果,因为你已经在你的模型类中设置了值,但是在获取值的时候,你什么都没做。

设置的值你没事d.setName(name.getText().toString())但是当你传递数据,这需要一定的价值,并为这点你已经提供使用d.getName()结果,机器不会做那。

在setValue的代码中这样做,我相信你会得到结果。我们有时候忽略了这种类型的错误,但是这些都是非常重要的,否则你会受到影响。

dRef.push().setValue(d.getName()).addOnCompleteListener(new OnCompleteListener<Void>() { 
       @Override 
       public void onComplete(@NonNull Task<Void> task) { 

        if (task.isSuccessful()) { 

         button.setText("SUBMIT"); 
         Toast.makeText(getApplicationContext(), "Data Saved", Toast.LENGTH_SHORT).show(); 
        } else { 

         button.setText("SUBMIT"); 
         Toast.makeText(getApplicationContext(), "" + task.getException().getMessage().toString(), Toast.LENGTH_SHORT).show(); 
        } 
       } 
      }); 

从你的错误中学习,每天变得更美好!快乐学习。如果您发现此功能有用,请在此答案上点击正确的勾号标记此答案。

EDITS

试试这个方法,并告诉我,如果它工作或不!

都在你的DatabaseReference首先做初始化这样

dRef = FirebaseDatabase.getInstance().getReference().child("Names"); 

,然后在你的代码这样做:

Data d = new Data(); 

      d.setName(name.getText().toString()); 

      dRef.setValue(d.getValue()).addOnCompleteListener(new OnCompleteListener<Void>() { 
       @Override 
       public void onComplete(@NonNull Task<Void> task) { 

        if (task.isSuccessful()) { 

         button.setText("SUBMIT"); 
         Toast.makeText(getApplicationContext(), "Data Saved", Toast.LENGTH_SHORT).show(); 
        } else { 

         button.setText("SUBMIT"); 
         Toast.makeText(getApplicationContext(), "" + task.getException().getMessage().toString(), Toast.LENGTH_SHORT).show(); 
        } 
       } 
      }); 
+0

是的,我知道,但这是显示应用程序的数据在这里我的问题是我无法在Firebase控制台中看到我保存的数据,它什么也没有显示。我上面提供了我的控制台图片链接。 – Digvijay

+0

你已经完成了我在代码中完成的工作吗? –

+0

yea老兄,我也试过你的解决方案,但它做的是和mine.After一样的东西。保存数据后,它不会以JSON格式显示在我的Firebase控制台中。 – Digvijay

相关问题