我是firebase的新手,我正在尝试使用我的Android应用程序。在我的应用程序中,我只是在数据库上保存名称,这是非常基本的消息显示数据已成功保存,但当我试图在firebase数据库控制台中看到它时,它甚至没有显示任何根网址没有显示。对于读取和写入权限,我还将Firebase规则设置为true。
请查看下面的代码:
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 :(得分: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();
}
}
});