[英]Firebase StartAt() doesn't work - it returns the same results without it
I'm trying to get the first 5 results (1-5), and then (6-10)... and so on.我试图获得前 5 个结果 (1-5),然后是 (6-10)...等等。 I save the last value I received, in order to StartAt where I stopped, but when I check the new values it still shows values 1-5 and not 6-10.
我保存了我收到的最后一个值,以便 StartAt 我停止的地方,但是当我检查新值时它仍然显示值 1-5 而不是 6-10。
Also, I don't understand if I really have to use orderByChild while my keys are already sorted on DB.另外,我不明白当我的键已经在数据库上排序时我是否真的必须使用 orderByChild。
My DB-我的数据库-
users
+user1
+user2
+user3
+user4
+user5
+user6
.....
+user50
First 1-5:前 1-5:
task = await FirebaseDatabase.DefaultInstance.GetReference("users").OrderByValue().LimitToFirst(5).GetValueAsync().ContinueWith(t => t);
That works fine.那很好用。 Now I'm trying to get users 6-10
现在我试图让用户 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);
}
output: user1 user2 user3 user4 user5 Why does it start from user1 if my code says StartAt("user5")?? output: user1 user2 user3 user4 user5 如果我的代码说 StartAt("user5") 为什么它从 user1 开始? What am I missing?
我错过了什么?
As per your comment, here is my (very short) answer:根据您的评论,这是我的(非常简短的)回答:
You should use OrderByKey.StartAt('userId')
rather than OrderByValue
.您应该使用
OrderByKey.StartAt('userId')
而不是OrderByValue
。
Glad I could help.很高兴我能帮助你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.