【问题标题】:How to retrieve range of data in firebase如何在firebase中检索数据范围
【发布时间】:2018-01-03 05:44:52
【问题描述】:

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

例如,我有 1000 个用户,现在我想向 1-100 范围内的用户发送邮件,然后是 101-200 、 201-300 等等。我怎样才能做到这一点? 我见过startAt()endAt() 函数,但我的问题是我不知道开头和结尾的用户键。所以我将无法通过这种方式检索范围。

【问题讨论】:

    标签: firebase firebase-realtime-database


    【解决方案1】:

    要获得前 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)
    

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

    【讨论】:

    • 谢谢弗兰克·范·普菲伦
    • @FrankvanPuffelen 我如何实现这一点的反转?我想先获取最新的。 (这是我首先获取的最后输入的数据)。然后获取较旧的 10 条记录,然后再获取最旧的 10 条记录,......
    猜你喜欢
    • 2021-01-16
    • 2018-05-13
    • 1970-01-01
    • 2016-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-01
    • 2015-11-19
    相关资源
    最近更新 更多