我想从firestore获取字段值,并且addonComplete侦听器未触发。所以想知道为什么会这样
这部分代码无法正常工作,而我在项目的其他部分中使用了此侦听器并可以正常工作。
public void loadroom(String id){
DocumentReference roomRef;
roomRef= FirebaseFirestore.getInstance()
.collection("Hotels")
.document(Common.city)
.collection("branch")
.document(id);
roomRef.get().addOnCompleteListener(new
OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
DocumentSnapshot snapshot=task.getResult();
if(task.isSuccessful())
{
String rooms=snapshot.getString("name");
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(bookingActivity.this, ""+e.getMessage(),
Toast.LENGTH_SHORT).show();
}
});
}
并且没有错误发生。
文档参考路径也正确。
答案 0 :(得分:0)
以下是用户经常错过的一些事情:
缺少Firebase规则,默认为阻止
忘记下载google-services.json
键名与代码的拼写错误
元帅Java pojo的方法声明错误或缺少集合 方法
经常被忽略的另一件事是,如果离线功能启用,例如:
FirebaseDatabase.getInstance()。setPersistenceEnabled(true);
(仅适用于Firebase,因为它在Firestore中默认为打开状态)
在调试应用程序时,人们可能会忘记Firebase中更改的数据需要先传播到设备,然后设备才能对更改做出反应。这似乎是在发生,但是如果互联网不畅或其他实习生来了,可能会发生奇怪的事情,使您立即不知道
像这样的Firebase脱机功能会导致内存问题,请@AlexMamo回答并显示讨论内容。
如果遇到勒索现象,可以随时卸载应用以发布 应用数据库的本地持久版本。
在开发时可能会错误地在Firestore控制台中查看错误的数据库,可以说您的应用程序具有开发人员版本和生产版本,只需要一点点咖啡,一个人就会看错东西