Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Firebase检索完全不同的密钥_Firebase_Firebase Realtime Database - Fatal编程技术网

从Firebase检索完全不同的密钥

从Firebase检索完全不同的密钥,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,我使用orderByKey从Firebase按键请求数据。如果关键点相似,我可以得到多个对象——以相同的字符串开始或结束 但是,如何通过一个对Firebase的请求检索完全不同的密钥,例如“n:1-2-3”和“n:2-3-4”?我使用的是equalTo,但是我可以在那里指定多个键吗 我知道如何处理不同的请求-每个键一个请求,但这不是最佳的。目前firebase只支持一种条件。下文对此进行了详细解释:- 如果假设您有两个键,分别是a123和a234,则要检索,您可以执行以下操作: Database

我使用
orderByKey
从Firebase按键请求数据。如果关键点相似,我可以得到多个对象——以相同的字符串开始或结束

但是,如何通过一个对Firebase的请求检索完全不同的密钥,例如“n:1-2-3”和“n:2-3-4”?我使用的是
equalTo
,但是我可以在那里指定多个键吗


我知道如何处理不同的请求-每个键一个请求,但这不是最佳的。

目前firebase只支持一种条件。下文对此进行了详细解释:-

如果假设您有两个键,分别是
a123
a234
,则要检索,您可以执行以下操作:

DatabaseReference ref=FirebaseDatabase.getInstance().getReference();
ref.orderByKey().startAt("a").limitToLast(10).addValueEventListener(..){..}
limitToLast()方法用于为给定回调设置要同步的最大子级数

您可以使用limittolast或limittofirst来限制从数据库获得的结果。
目前firebase仅支持一种情况。因此,您不能有一个以上的
orderbykey
orderbychild
或两者一起..

显示一个数据库示例并解释更多请,哦,我想我理解您想要多个条件,不,这是不可能的。你能做的最多的就是orderbykey()。equalTo(这里的key_)在思想上,为什么我可以一次请求“animal_dog”和“animal_horse”,而不是“a123”和“a234”?你可以,你需要使用startAt()@PeterHaddad如果我使用startAt(“a”),它将返回我100万个结果。我只想要两个“a123”和“a234”。问题是它们不是最后一个,我不知道顺序。例如,“a123”的位置为3453,“a234”的位置为4357623。我不能在我的情况下使用startAt()。我最初的问题是:我能读懂完全不同的键吗,例如“qwe”和“rty”。正如我在回答中所说的,逻辑上,读懂两个不同的键需要满足多种条件,但由于你只能满足一个条件,所以不能满足,你最多只能满足
orderBykey()正文开头的“目前firebase只支持一个条件”。这将帮助其他人更快。谢谢。