我是 Firebase 的新手,在使用 onDataChange() 方法时遇到了问题。 onDataChange() 没有被调用。
这是我的代码:
DatabaseReference mref = FirebaseDatabase.getInstance().getReference("songs");
System.out.println("I am in Oncreate()");
ValueEventListener event = new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
System.out.println("I am in onDataChange()");
for(DataSnapshot ds:snapshot.getChildren()){
String name =ds.child("name").getValue(String.class);
System.out.println("I am printing name: "+name);
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
System.out.println("Firebase Error"+ error.toException());
}
};
mref.addListenerForSingleValueEvent(event);
System.out.println("I called mref.addlistner...()");
Firebase 访问规则如下:
{
"rules": {
".read": "true",
".write": "true"
}
}
答案 0 :(得分:0)
在 onDataChanged() 方法中,您应该添加这样的 if 条件,然后将代码粘贴到其中。
if(snapshot.exists()){}
这将确保您的快照确实存在。