android – 混淆关于Firebase startAt()

android – 混淆关于Firebase startAt(),第1张

概述我正在尝试用firebase制作 android应用程序,我想使用startAt()在firebase上使用搜索功能.但结果让我感到困惑. 我有一些像这样的firebase数据. { "siswa" : { "100" : { "id" : 100, "nama" : "Sucipto" }, "101" : { "id" : 101 我正在尝试用firebase制作 android应用程序,我想使用startAt()在firebase上使用搜索功能.但结果让我感到困惑.

我有一些像这样的firebase数据.

{  "siswa" : {    "100" : {      "ID" : 100,"nama" : "Sucipto"    },"101" : {      "ID" : 101,"nama" : "Tomo"    },"102" : {      "ID" : 102,"nama" : "Fitri"    },"103" : {      "ID" : 103,"nama" : "Sumini"    },"104" : {      "ID" : 104,"nama" : "Eko"    },"106" : {      "ID" : 106,"nama" : "Sulastri"    }  }}

我的示例查询

// Setup Firebasefinal FirebaseDatabase database = FirebaseDatabase.getInstance();// Firebase siswa reffinal DatabaseReference siswaRef = database.getReference("siswa");// queryquery suciptoquery = siswaRef.orderByChild("nama").startAt("Sucipto");

结果:

D/query Sucipto: Nama : Sucipto D/query Sucipto: Nama : Sulastri D/query Sucipto: Nama : Sumini D/query Sucipto: Nama : Tomo

我正在尝试另一个测试查询

query suciptoquery = siswaRef.orderByChild("nama").startAt("Su");

结果:与上述相同

另一个问题:

query suciptoquery = siswaRef.orderByChild("nama").startAt("Tomo");

要么

query suciptoquery = siswaRef.orderByChild("nama").startAt("To");

结果:

D/query Sucipto: Nama : Tomo

我在SO上搜索这个主题,但仍然没有任何解决方案.

解决方法 我检查了 startAt()文档,逻辑很混乱.但是,如果我理解它是正确的(是的,不完全确定,但要提前发布,这可能会有所帮助).

在你的第一次尝试中,起始值是“Sucipto”,我认为这表明在词典上更大的后续单词/字符串是主题.正如你在结果中看到的那样,在参考中的其他孩子中,没有返回Eko和Fitri,因为按字母顺序,’S’远远超过’F’和’E’.

你可以验证这个尝试添加另一个值,让我们说“Sucipta”包括在内.如果再次运行查询,其中startAt()的值为“Sucipto”,则返回值仍然不包括“Sucipta”,因为“Sucipta”的最后一个字母更高(或者alpahabetically first(a,b,c …对不起,我只是找不到一个好词.)

我认为这可能会有所帮助,您可以查看Firebase Retrieving Data文档以获取更详细的说明.在一个例子中,他们也使用了一个字母而不是一个数字.

总结

以上是内存溢出为你收集整理的android – 混淆关于Firebase startAt()全部内容,希望文章能够帮你解决android – 混淆关于Firebase startAt()所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1125801.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存