【问题标题】:Firebase realtime databae not working, setValueFirebase 实时数据库不工作,setValue
【发布时间】:2017-10-14 11:52:45
【问题描述】:

我按教程制作了示例 'https://firebase.google.com/docs/database/android/start/?hl=ko' 用于 Firebase 实时数据库

但是onDataChanged'EventValueListner'之后我看不到任何数据

你能解释一下为什么会这样吗?

FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("message");

myRef.setValue("Hello, World!");
// Read from the database
myRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        // This method is called once with the initial value and again
        // whenever data at this location is updated.
        String value = dataSnapshot.getValue(String.class);
        Log.d("TAG", "Value is: " + value);
    }

   @Override
    public void onCancelled(DatabaseError error) {
        // Failed to read value
        Log.w("TAG", "Failed to read value.", error.toException());
    }
});

这是我的代码。

我的错是什么?

【问题讨论】:

  • 我没有立即看出您的代码有什么问题。您在 logcat 输出中看到任何消息吗?
  • this question看到完全相同的代码后,我想知道你是不是根本没有网络连接。这是我能很快想到的唯一情况,那么onDataChange()onCancelled() 都不会被调用。

标签: android firebase-realtime-database


【解决方案1】:

此示例将在 firebase db 中插入新的用户数据。

 FirebaseDatabase database;
    DatabaseReference usersTable;
    database = FirebaseDatabase.getInstance();
    usersTable = database.getReference("Users");
    /*we work here */
    usersTable.addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {

                        progressDialog.dismiss();
                        if (dataSnapshot.child(phoneEditText.getText().toString()).exists()) {

                            Toast.makeText(SignUp.this, "Number already register", Toast.LENGTH_SHORT).show();
                        }else{
                            Users users = new Users(nameEditText.getText().toString(),passwordEditTex.getText().toString(),phoneEditText.getText().toString());
                            usersTable.child(phoneEditText.getText().toString()).setValue(users);
                            Toast.makeText(SignUp.this, "Signup Sucessfully", Toast.LENGTH_SHORT).show();
                            finish();
                        }


                    }

                    @Override
                    public void onCancelled(DatabaseError databaseError) {

                    }
                });

希望对你有帮助

【讨论】:

  • 对此我很抱歉。我找到了解决方案。这是中国位置的问题。
  • @KaanKoca 你能详细说明一下吗?我也有类似的问题。
猜你喜欢
  • 2021-07-13
  • 1970-01-01
  • 2021-03-23
  • 2018-01-26
  • 2021-05-20
  • 1970-01-01
  • 2018-12-25
  • 2021-03-10
  • 2017-07-20
相关资源
最近更新 更多