繁体   English   中英

如何将数据添加到 Firebase 数据库?

[英]How do I add data to the Firebase database?

我无法在 Firebase 实时数据库中添加任何数据。 数据库连接正常,但我无法添加任何数据。 当我单击按钮时,添加到我的数据库中的数据。

MainActivity.java - 代码

        private FirebaseDatabase database;
        private DatabaseReference dbRef;
        btnAdd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                String plan,note,date,time,remb,eventId;
                plan = etplan.getText().toString();
                note = etnote.getText().toString();
                date = etdate.getText().toString();
                time = ettime.getText().toString();

                if (remember.isChecked()==true){
                    remb= "true";
                }
                else{
                    remb = "false";
                }
                database = FirebaseDatabase.getInstance();
                dbRef = database.getReference("events");
                eventId = dbRef.push().getKey();
                event = new Events(plan,note,date,time,remb);
                dbRef.child(eventId).setValue(event);

                Toast.makeText(MainActivity.this,"Events Added SUCCESSFULLY!", Toast.LENGTH_SHORT).show();
            }
        });

Events.java - 代码

public class Events {
    String plan;
    String note;
    String date;
    String time;
    String remb;

    public Events(){

    }

    public Events(String plan, String note, String date, String time, String remb){
        this.plan=plan;
        this.note=note;
        this.date=date;
        this.time=time;
        this.remb=remb;
    }
}

我在运行时收到以下错误:在 com.cdirect.agenda.MainActivity$4.onClick(MainActivity.java:118)

这段代码:

dbRef.child(eventId).setValue(event);

在这个 eventID 代码之前(是字符串)

eventId = dbRef.push().getKey().toString();

您可以做的是向setValue(event)方法添加一个侦听器,如下所示:

dbRef.child(eventId).setValue(event)
     .addOnCompleteListener { task ->
            if(task.isSuccessful) {
                 Toast.makeText(this, "Successful", Toast.LENGTH_SHORT).show()
                 } else {
                 Toast.makeText(this, task.getException().getMessage(),
                         Toast.LENGTH_SHORT).show();
                }
      }

现在task.getException().getMessage()将让您知道保存事件数据的实际问题是什么。

另外,不要忘记检查 read 和 write 设置为true的数据库规则。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM