我可以收听尚未创建的文档内容吗?

时间:2019-08-02 16:06:02

标签: android firebase kotlin google-cloud-firestore

我的要求是后续操作,我需要侦听尚未创建的文档值。

我的用例是,我启动一个云函数,该函数写入我的firestore数据库中的特定路径,然后从android将侦听器附加到尚未创建的值,然后在其创建启动时逻辑和已放置在数据库中的数据。

db.collection("home").document("homeTest/light_id").get().addOnCompleteListener {
            if(it.isSuccessful){
                progressBar.visibility = View.GONE
                btnHomeLight.isEnabled = true
               }
            }else{
                Log.e("Exception",""+it.exception)
            }
        }

当时我的onCreate()中有此代码,light_id尚未在数据库中创建

触发函数后,light_id被良性创建,它应启用btnHomeLight

但是我遇到了这个错误

  

原因:java.lang.IllegalArgumentException:无效的文档   参考。文档引用必须具有偶数个段,   但是home / hometest / light_id有3

我的数据库结构就是这个

*Collection* 
  |__home
    |__ *Document*
       |___homeTest
           |__ light_id : "Random_generated_ID"

我的参考是问题吗?

由于Im在集合 home 下并在文档(homeTest / light_id)内部,应该获取该特定值。

谢谢

1 个答案:

答案 0 :(得分:0)

解决了这个问题

 val docRef = db.collection("home").document("homeTest")
        docRef.addSnapshotListener { documentSnapshot, firebaseFirestoreException ->
 if(!documentSnapshot?.getString("light_id").isNullOrEmpty()){
...
}

顺便说一句,我真的不知道这是否是最好的方法。

如果有更好的方法,我很乐意得知