我想问题一定存在,但我无法弄清楚。我想达到标题,但我不能总是快照返回 null 也没有关于连接的问题,因为当我检查用户 ID 时,我可以达到那个。
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference titleRef = rootRef.child("users").child("value").child("title");
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
titleRef.get().addOnCompleteListener(task -> {
if (task.isSuccessful()) {
DataSnapshot snapshot = task.getResult();
String title = snapshot.getValue(String.class);
Log.d("TAG", title);
System.out.println(title);
} else {
Log.d("TAG", task.getException().getMessage()); //Don't ignore potential errors!
}
});
}
});
----我的数据结构----
{
"users" : {
"value" : {
"title" : "dsfdfasd"
}
}
}
最佳答案
如果您的数据库架构如下所示:
{
"users" : {
"value" : {
"title" : "dsfdfasd"
}
}
}
为了能够得到“title”的值,请使用以下引用DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference titleRef = rootRef.child("users").child("value").child("title");
调用 get() 并像这样附加一个监听器:titleRef.get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>() {
@Override
public void onComplete(@NonNull Task<DataSnapshot> task) {
if (task.isSuccessful()) {
DataSnapshot snapshot = task.getResult();
String title = snapshot.getValue(String.class);
Log.d("TAG", title);
} else {
Log.d("TAG", task.getException().getMessage()); //Don't ignore potential errors!
}
}
});
logcat 中的结果将是:dsfdfasd
除此之外,始终记录错误,而不是盲目地假设一切正常。
关于java - datasnapshot 没有从 firebase 获得值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69021539/