如何检索firebase中的数据范围

时间:2017-07-27 13:07:56

标签: firebase firebase-realtime-database

我有用户的数据,其中有uuid作为他们的密钥。我想向每个用户发送邮件,但我不想一起发送邮件,所以我想要检索用户范围。

例如,我有1000个用户现在我想发送邮件到范围1-100用户然后101-200,201-300等等。我怎样才能做到这一点? 我看过` SELECT pim FROM raw ORDER BY rdate DESC LIMIT 1; ` startAt()函数,但我的问题是我在开头和结尾都不知道用户密钥。所以我无法通过这种方式检索范围。

1 个答案:

答案 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)

您会注意到我们在这里检索了一个额外的项目,因为此查询中的第一个用户将与上一个查询中的最后一个用户相同。