Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在firebase中检索数据范围_Firebase_Firebase Realtime Database - Fatal编程技术网

如何在firebase中检索数据范围

如何在firebase中检索数据范围,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,我有用户的数据,其中uuid是它们的密钥。我想向每个用户发送邮件,但我不想同时向他们发送邮件,所以我想检索用户范围 例如,我现在有1000个用户,我想发送邮件给范围为1-100的用户,然后是101-200、201-300等等。我怎样才能做到这一点? 我已经看过startAt和endAt函数,但我的问题是我在开始和结束时都不知道用户密钥。因此,我将无法通过这种方式检索范围。要获得前100个用户,您需要对其进行查询: query = ref.orderByKey().limitToFirst(100

我有用户的数据,其中uuid是它们的密钥。我想向每个用户发送邮件,但我不想同时向他们发送邮件,所以我想检索用户范围

例如,我现在有1000个用户,我想发送邮件给范围为1-100的用户,然后是101-200、201-300等等。我怎样才能做到这一点?
我已经看过startAt和endAt函数,但我的问题是我在开始和结束时都不知道用户密钥。因此,我将无法通过这种方式检索范围。

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

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

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

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

谢谢Frank vanPuffelen@FrankvanPuffelen我如何实现这一点的相反?我想先去拿最新的。这是我首先获取的最后输入的数据。然后获得旧的10张唱片,然后再次获得旧的10张唱片,……谢谢弗兰克·范Puffelen@FrankvanPuffelen我如何实现这一点的相反?我想先去拿最新的。这是我首先获取的最后输入的数据。然后获取旧的10条记录,然后再次获取旧的10条记录。。。。