【发布时间】:2022-11-11 11:14:53
【问题描述】:
我需要从我的 Firebase 数据库中读取数据。我会尽力而为,但 addValueListener 不会触发。
DatabaseReference referenceParty = database.getReference();
referenceParty.child("Party").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
PartyInf info = snapshot.getValue(PartyInf.class);
String acCode = info.getAC_Code();
String acName = info.getAC_Name();
String arCode = info.getArea_Code();
PartyExist = dbMain.hasObjectParty(Integer.parseInt(acCode));
if (PartyExist == false && !acName.trim().equals("")) {
dbMain.addParty(Integer.parseInt(acCode), acName, Integer.parseInt(arCode));
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
【问题讨论】:
-
第一步是实现
onCancelled,这样你就不会忽略错误。至少应该是public void onCancelled(@NonNull DatabaseError databaseError) { throw databaseError.toException(); }。 --- 然后检查是否通过在调试器中运行调用了onDataChange或onCancelled。如果两者都没有被调用,你可能没有正确配置你的数据库 URL,你可以将它传递到 API 调用中:DatabaseReference referenceParty = FirebaseDatabase.getInstance("database URL here").getReference();关于这方面的更多信息,请参阅stackoverflow.com/q/68806876 -
确保您的 Firebase 数据库路径正确,并且您正在将数据写入正确的路径。
-
我会尝试这个但仍然没有结果。onDataChenge 或 onCancelled 都没有调用 FirebaseDatabase database = FirebaseDatabase.getInstance("easypay-default-rtdb.firebaseio.com"); DatabaseReference referenceArea = database.getReference("Area");
-
@LawrenceGimenez 我检查了。这是正确的
-
关于你的问题,你正在写信给Party?
标签: android firebase firebase-realtime-database