当前位置: 首页 > 知识库问答 >
问题:

Firebase按子值搜索

李宜然
2023-03-14

我想按姓名、姓氏或电子邮件搜索用户,但由于我没有上述级别的用户密钥,我不知道如何实现这一点。我正在执行和管理员会话,因此它无法访问用户密钥。

我尝试过:

let usersRef = firebase.database().ref('users');
usersRef.orderByValue().on("value", function(snapshot) {
    console.log(snapshot.val());
    snapshot.forEach(function(data) {
        console.log(data.key);
    });
});

但它会把所有用户都带到数据库上。有什么想法吗?

共有2个答案

缪升
2023-03-14

避免不愉快意外的警告:当您使用orderByUNICEFequalTo时,不要忘记在您的数据上添加索引(这是文档)

如果您不这样做,所有的点头将被下载并过滤客户端,如果您的数据库增长,这可能会变得非常昂贵。

简宏义
2023-03-14

您可以使用equalTo()按值查找任何子级。在您的情况下,通过name

ref.child('users').orderByChild('name').equalTo('John Doe').on("value", function(snapshot) {
    console.log(snapshot.val());
    snapshot.forEach(function(data) {
        console.log(data.key);
    });
});

orderByChild()的目的是定义要筛选/搜索的字段equalTo()可以获取字符串、int和布尔值。

也可以与自动生成的键(按键)一起使用。

您可以在此处找到所有文档

 类似资料:
  • 问题内容: 我的数据库具有按以下方式排序的值: 我想实现一个朋友添加系统,您可以在其中搜索用户名或电子邮件,并允许您添加此人。 我可以通过使用找到用户 这样我就可以得到用户的整个字典,但是在获取UID时遇到了问题。 snapshot.key给了我“用户”。 使用用户名/电子邮件找到用户的字典后,如何从字典中获取UID值? 问题答案: 对Firebase数据库执行查询时,可能会有多个结果。因此,快照

  • 我编写了一个Java应用程序,通过LDAP搜索Active directory以获取用户信息。我有一个传入的自定义Person类实例列表。在它我有DN或电子邮件定义。我正在相应地修改搜索条件。代码如下: 代码工作时没有错误,但当指定DN时,它确实找到了一个人,但当定义email时,它什么也找不到。但是,如果复制生成的筛选器字符串并将其以以下形式传递给ldapsearch命令: ldapsearch

  • 我正在从flickrs API获取一些JSON。我的问题是exif数据的顺序因相机而异。所以我不能硬编码一个数组号来获得,例如,下面的相机型号。PHP是否有任何内置方法来搜索关联数组值并返回匹配数组?在下面的示例中,我想搜索

  • 问题内容: 我有一个要在其中搜索并获取数组键的数组。 例子 假设我们有以下二维数组: 函数调用(第一个用户的uid)应返回。 函数调用应返回。 我尝试进行循环,但是我想要更快的执行代码。 问题答案: function searchForId($id, $array) { foreach ($array as $key => $val) { if ($val[‘uid’] === $id) { re

  • 我有一个数组,我想在其中搜索,并获取数组的键。 假设我们有以下2维数组: 函数调用(第一个用户的uid)应返回。 函数调用应该返回。 我试着做循环,但我想要一个执行速度更快的代码。

  • 问题内容: 考虑: 查询将是这样的: 如何实现按孩子计数? 换句话说,返回的TParent列表的顺序将由TChildSet计数决定。 我知道@Formula可以在SQL环境中使用。我不确定Lucene是否可以使用类似的东西? 任何帮助,指点,评论甚至批评都欢迎。 非常感谢约翰 问题答案: 在hibernate搜索中,您可以为此创建一个自定义Bridge。 类似于以下内容: 使用自定义桥实现: