Java 如何从firebase数据库获取基于值的数据
我试图在结构化数据的子“状态”中获取基于“付款”的数据 我用过这个Java 如何从firebase数据库获取基于值的数据,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我试图在结构化数据的子“状态”中获取基于“付款”的数据 我用过这个 salesRef = FirebaseDatabase.getInstance().getReference() .child("Orders") .orderByKey().startAt("Payments").endAt("Payments"+"\uf8ff"); 但我什么也没得到,怎么了?我应该使用什么?您需要执行以下操作: salesRef = Fir
salesRef = FirebaseDatabase.getInstance().getReference()
.child("Orders")
.orderByKey().startAt("Payments").endAt("Payments"+"\uf8ff");
但我什么也没得到,怎么了?我应该使用什么?您需要执行以下操作:
salesRef = FirebaseDatabase.getInstance().getReference().child("Orders").orderByChild("state").equalTo("Waiting Payments Config");
orderByChild
将属性的名称作为参数,equalTo
将该属性的值作为参数
检查文档:
您是按键订购的(089630116543等),然后说您需要从“Payments”开始到“Payments\uf8ff”结束的键。没有任何这样的键,这就是为什么你没有得到任何结果
我自己还没有使用Firebase实时数据库(只是Firestore,来自C#,虽然相关但不完全相同)。我怀疑如果您将orderByKey()
更改为orderByChild(“state”)
,将解决此问题:
salesRef=FirebaseDatabase.getInstance().getReference()
.儿童(“命令”)
.orderByChild(“州”).startAt(“付款”).endAt(“付款”\uf8ff”);
请注意,这将找不到状态为“Waiting Payments Config”的值,因为它不是以Payments开头的。如果你真的想要一个“包含”类型的查询,那可能会更棘手(或者不可行,我不确定)。@FrankvanPuffelen:不确定你所说的
-L…
是什么意思,但我会删除“其他选项”部分。