android 中的数据未保存在 Firebase 数据库中

Data not getting saved in Firebase database from android

我正在使用新的 Firebase 控制台。我正在尝试将一个对象保存到数据库,但它没有被保存。以下是代码。

DatabaseReference mFirebaseRef = FirebaseDatabase.getInstance().getReference();
mFirebaseRef.push().setValue(object, new DatabaseReference.CompletionListener() {
            @Override
            public void onComplete(DatabaseError databaseError, DatabaseReference reference) {
                if (databaseError != null) {
                    Log.e(TAG, "Failed to write message", databaseError.toException());
                }
            }
        });

'object' 已正确创建。我没有收到任何错误,并且我在调试时检查过没有触发 onComplete 方法。 安全规则也适用于写入。

请注意 DatabaseReference.CompletionListener 触发 "when an operation has been acknowledged by the Database servers"。您 运行 测试时是否可能没有网络连接?我复制了你的代码,运行 它在 phone 上成功复制,object 定义如下:

Object object = new String("Test");

然后我启用了飞行模式,重新运行代码并观察了您描述的行为。在我禁用飞行模式并建立网络连接之前,完成侦听器不会触发。

this documentation 中提供了检查网络连接状态的示例代码。

使用下面的代码:

mFirebaseRef.push().setValue(object).addOnCompleteListener(new OnCompleteListener<Void>() 
{
                            @Override
                            public void onComplete(@NonNull Task<Void> task) {
                           if(task.isSuccessful()){
                               // write code for successfull operation
                           }
                            }
                        });
                    }

.push 将生成一个随机密钥,如果您不使用 .push 它将存储您的数据,它将覆盖以前存储的数据。