我的要求是后续操作,我需要侦听尚未创建的文档值。
我的用例是,我启动一个云函数,该函数写入我的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)内部,应该获取该特定值。
谢谢
答案 0 :(得分:0)
解决了这个问题
val docRef = db.collection("home").document("homeTest")
docRef.addSnapshotListener { documentSnapshot, firebaseFirestoreException ->
if(!documentSnapshot?.getString("light_id").isNullOrEmpty()){
...
}
顺便说一句,我真的不知道这是否是最好的方法。
如果有更好的方法,我很乐意得知