未触发Firestore的AddonCompleteListener

时间:2019-06-09 07:52:11

标签: java android

我想从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();
           }
       });
    }

并且没有错误发生。

文档参考路径也正确。

1 个答案:

答案 0 :(得分:0)

以下是用户经常错过的一些事情:

  

缺少Firebase规则,默认为阻止

     

忘记下载google-services.json

     

键名与代码的拼写错误

     

元帅Java pojo的方法声明错误或缺少集合   方法

经常被忽略的另一件事是,如果离线功能启用,例如:

  

FirebaseDatabase.getInstance()。setPersistenceEnabled(true);
  (仅适用于Firebase,因为它在Firestore中默认为打开状态)

在调试应用程序时,人们可能会忘记Firebase中更改的数据需要先传播到设备,然后设备才能对更改做出反应。这似乎是在发生,但是如果互联网不畅或其他实习生来了,可能会发生奇怪的事情,使您立即不知道

像这样的Firebase脱机功能会导致内存问题,请@AlexMamo回答并显示讨论内容。

  

如果遇到勒索现象,可以随时卸载应用以发布   应用数据库的本地持久版本。

在开发时可能会错误地在Firestore控制台中查看错误的数据库,可以说您的应用程序具有开发人员版本和生产版本,只需要一点点咖啡,一个人就会看错东西