从Firebase获取随机物品

Ace*_*Ace 8 javascript firebase firebase-realtime-database

我搜索了它,但所有答案都很旧,所以也许有更好的方法.我试图从Firebase DB中获取一个随机项目,如下所示:

在此输入图像描述

我想得到一个随机用户,就是这样.

有任何想法吗?

小智 8

我必须解决同样的问题,我在所有记录中添加了一个从0到1的随机数,最后通过startAtlimitToFirst过滤到1.

示例: https://your-project-qwert.firebaseio.com/example.json?orderBy ="random"&limitToFirst = 1&startAt = 0.84

  • 附加说明:您首先必须请求列表中最大的随机数(使用`orderByxxx.limitToLast(1)`)以确保使用`var rand = Math.random() *highestValue; 正确绑定随机数; ` (2认同)

Elm*_*sen 7

如果您知道有多少用户,您可以这样做:

const numberOfUsers = 15;
const randomIndex = Math.floor(Math.random() * numberOfUsers);

var ref = firebase.database().ref('companies/01/users');

ref.limitToFirst(randomIndex).limitToLast(1).once('value').then(snapshot =>
{
    var user = snapshot.val();
    // do something with the user data
});
Run Code Online (Sandbox Code Playgroud)

但是,如果您不知道有多少个孩子(或者将子列表存储在其他地方),那么在没有首先接收树中的所有子项的情况下,没有直接的方法可以解决此问题.请参阅在Firebase中,有没有一种方法可以在不加载所有节点数据的情况下获取节点的子节点数?了解更多信息.

  • 了解有多少用户的最佳方法可能是使用谷歌云功能创建一个脚本来增加表的计数字段. (3认同)