【发布时间】:2021-05-25 04:23:36
【问题描述】:
我是 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"
}
}
【问题讨论】:
-
System.out.println("Firebase Error"+ error.toException());是否在 logcat 中显示某些内容?您的 onDataChange 或 onCancelled 是否已触发? -
@AlexMamo 不,logcat 中没有任何内容。 onDataChange 或 onCancelled 甚至没有被触发。这就是我要说的。甚至没有执行过
System.out.println("I am in onDataChange()");或System.out.println("Firebase Error"+ error.toException());。 -
您很可能无法连接到 Firebase 服务器,或者您的用户设备上没有互联网连接。
-
@AlexMamo 问题已解决。我没有在
getInstance()方法中指定数据库 url。
标签: android firebase firebase-realtime-database