Firebase 实时数据库读取不工作 (Android Java)
Firebase Realtime database read not working (Android Java)
我正在使用实时数据库将信息从 Windows 计算机传输到 Android phone。我能够将数据从 Windows PC 写入数据库,但出于某种原因我无法将其从数据库读取到 Android。我正在使用 Android 工作室 Java。这是代码:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference userRef = rootRef.child("users");
userRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
String name = ds.getKey();
PCs.add(new PC(name));
}
for (int i = 0; i < PCs.size(); i++) {
PCs.get(i).setIp(dataSnapshot.child(PCs.get(i).getName()).child("ip").getValue(String.class));
PCs.get(i).setConnected(dataSnapshot.child(PCs.get(i).getName()).child("status").getValue(Boolean.class));
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
就是不进入onDataChange方法,也不进入onCancelled方法
如果它没有进入任何回调,您可能没有正确配置与数据库的连接。解决这个问题的一个简单方法是在代码中传递数据库 URL,而不是依赖于 google-services.json
文件:
DatabaseReference rootRef = FirebaseDatabase.getInstance("your database URL").getReference();
一般来说,您应该从不忽略可能的错误,并实施onCancelled
。至少应如下所示:
public void onCancelled(@NonNull DatabaseError error) {
throw error.toException();
}
我正在使用实时数据库将信息从 Windows 计算机传输到 Android phone。我能够将数据从 Windows PC 写入数据库,但出于某种原因我无法将其从数据库读取到 Android。我正在使用 Android 工作室 Java。这是代码:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference userRef = rootRef.child("users");
userRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
String name = ds.getKey();
PCs.add(new PC(name));
}
for (int i = 0; i < PCs.size(); i++) {
PCs.get(i).setIp(dataSnapshot.child(PCs.get(i).getName()).child("ip").getValue(String.class));
PCs.get(i).setConnected(dataSnapshot.child(PCs.get(i).getName()).child("status").getValue(Boolean.class));
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
就是不进入onDataChange方法,也不进入onCancelled方法
如果它没有进入任何回调,您可能没有正确配置与数据库的连接。解决这个问题的一个简单方法是在代码中传递数据库 URL,而不是依赖于 google-services.json
文件:
DatabaseReference rootRef = FirebaseDatabase.getInstance("your database URL").getReference();
一般来说,您应该从不忽略可能的错误,并实施onCancelled
。至少应如下所示:
public void onCancelled(@NonNull DatabaseError error) {
throw error.toException();
}