【发布时间】:2026-01-23 06:45:02
【问题描述】:
我将 Firebase 用于我的 Android 平台聊天应用程序。我正在将此库用于 Firebase 数据库:
compile 'com.google.firebase:firebase-database:9.6.0'
我按照here 的所有步骤来设置我的项目。我为我的 Firebase 数据库设置了 true 和 read 和 write 权限。
{
"rules": {
".read": true,
".write": true
}
}
我正在使用以下代码将我的数据发布到 Firebase 数据库(单击按钮后会触发以下代码块):
String name = loyalUserText.getText().toString().trim();
FirebaseDatabase db = FirebaseDatabase.getInstance();
DatabaseReference dbRef = db.getReference().child("name");
dbRef.setValue(name);
Log.e(TAG, "onClick: "+dbRef.toString());
我的日志返回这个:
E/LoginActivity: onClick:https://poztal-14f48.firebaseio.com/name
然后我检查了我的 Firebase 数据库,没有任何条目。它看起来是空的。我创建了一个具有相同子名的子项 ("name"),并在其中添加了一个新值。
但是这个值并没有反映到我的应用程序中ValueEventListener。问题是我的应用没有与 firebase 数据库通信。
更新:
我在活动中实现的监听器是OnCompleteListener<Void>:
dbRef.setValue(name).addOnCompleteListener(this);
@Override
public void onComplete(@NonNull Task<Void> task) {
Log.e(TAG, "onComplete: " + task.isComplete());
Log.e(TAG, "onComplete: " + task.toString());
}
这个onComplete() 块没有到达。
提前致谢。
【问题讨论】:
-
使用完成监听器检查错误并更新问题
-
@NishantDubey 我已经更新了我的问题。请调查一下。
-
这不是你添加完成回调的方式
-
'ref.setValue("我正在写数据", new Firebase.CompletionListener() { @Override public void onComplete(FirebaseError firebaseError, Firebase firebase) { if (firebaseError != null) { System .out.println("数据无法保存。" + firebaseError.getMessage()); } else { System.out.println("数据保存成功。"); } }' 这就是我的意思
-
我想要 firebaseError.getMessage() 的输出
标签: android firebase firebase-realtime-database