我正在尝试根据结构化数据中子“州”中的“付款”获取数据 My Structured firebase
我用了这个
salesRef = FirebaseDatabase.getInstance().getReference()
.child("Orders")
.orderByKey().startAt("Payments").endAt("Payments"+"\uf8ff");
但是我什么也没回来。怎么了?我该怎么用?
答案 0 :(得分:5)
您要按键(例如089630116543等)进行订购,然后说您要键从“付款”开始,到“付款\ uf8ff”结束。没有这样的键,这就是为什么您没有得到任何结果的原因。
我自己还没有使用过Firebase Realtime Database(只是C#中的Firestore,相关但不完全相同)。我怀疑,如果将orderByKey()
更改为orderByChild("state")
可以解决此问题:
salesRef = FirebaseDatabase.getInstance().getReference()
.child("Orders")
.orderByChild("state").startAt("Payments").endAt("Payments\uf8ff");
请注意,这不会在State为“ Waiting Payments Config”的情况下找到值,因为这不是从开始。如果您实际上想要一个“包含”类型的查询,那可能会比较棘手(或者不确定,我不确定)。
答案 1 :(得分:4)
您需要执行以下操作:
salesRef = FirebaseDatabase.getInstance().getReference().child("Orders").orderByChild("state").equalTo("Waiting Payments Config");
orderByChild
将属性名称作为参数,而equalTo
将属性名称作为参数。
检查文档
https://firebase.google.com/docs/database/android/lists-of-data