
我有一些像这样的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()所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)