Firebase StartAt()不';t work-如果没有它,它将返回相同的结果
我试图得到前5个结果(1-5),然后(6-10)。。。等等 我保存我收到的最后一个值,以便从我停止的地方开始, 但当我检查新值时,它仍然显示值1-5,而不是6-10 另外,我不明白当我的密钥已经在DB上排序时,我是否真的必须使用orderByChild 我的数据库-Firebase StartAt()不';t work-如果没有它,它将返回相同的结果,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,我试图得到前5个结果(1-5),然后(6-10)。。。等等 我保存我收到的最后一个值,以便从我停止的地方开始, 但当我检查新值时,它仍然显示值1-5,而不是6-10 另外,我不明白当我的密钥已经在DB上排序时,我是否真的必须使用orderByChild 我的数据库- users +user1 +user2 +user3 +user4 +user5 +user6 ..... +user50 第一个1-5: task = awai
users
+user1
+user2
+user3
+user4
+user5
+user6
.....
+user50
第一个1-5:
task = await FirebaseDatabase.DefaultInstance.GetReference("users").OrderByValue().LimitToFirst(5).GetValueAsync().ContinueWith(t => t);
那很好。
现在我想让用户6-10个
lastUserId= "user5"
task=null;
task = await FirebaseDatabase.DefaultInstance.GetReference("users").OrderByValue().StartAt(lastUserId).LimitToFirst(5).GetValueAsync().ContinueWith(t => t);
DataSnapshot dts = task.Result;
foreach (DataSnapshot s in dts.Children)
{
Debug.Log(s.Key);
}
输出:
用户1
用户2
用户3
用户4
用户5
如果我的代码是StartAt(“user5”),为什么它从user1开始??我遗漏了什么?根据您的评论,以下是我(非常简短)的答案: 您应该使用
OrderByKey.StartAt('userId')
而不是OrderByValue
很高兴我能帮忙 您应该使用OrderByKey.StartAt('userId')是。把它写下来作为答案我把它作为答案加上去了。请将其标记为已接受。谢谢。:-)