我有用户的数据,其中有uuid作为他们的密钥。我想向每个用户发送邮件,但我不想一起发送邮件,所以我想要检索用户范围。
例如,我有1000个用户现在我想发送邮件到范围1-100用户然后101-200,201-300等等。我怎样才能做到这一点?
我看过` SELECT pim FROM raw ORDER BY rdate DESC LIMIT 1; `
和startAt()
函数,但我的问题是我在开头和结尾都不知道用户密钥。所以我无法通过这种方式检索范围。
答案 0 :(得分:8)
要获得前100位用户,请执行以下查询:
query = ref.orderByKey().limitToFirst(100)
然后,当您处理用户时,请跟踪您已处理的最后一个密钥:
vast lastSeenKey;
query.once("value", function(snapshot) {
snapshot.forEach(function(userSnapshot) {
lastSeenKey = userSnapshot.key;
});
});
然后要加载下一个100个用户,您可以从您看到的最后一个密钥开始查询:
query = ref.orderByKey().startAt(lastSeenKey).limitToFirst(101)
您会注意到我们在这里检索了一个额外的项目,因为此查询中的第一个用户将与上一个查询中的最后一个用户相同。