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

Firebase实时数据库过滤数据

苍温文
2023-03-14

所以我正在制作约会应用程序,现在我需要为用户创建一个匹配的人员列表。

因此,我需要一个firebase查询来查看性别,并检查是否已经匹配,如果匹配,则不应将其包括在列表中。

我试着按性别过滤数据。如何编辑此查询以检查它们是否已匹配?匹配项显示在用户/{userID}/Matches/{matchedUserID}中

这是我尝试的:

async createUserListAndNavigate() {
    let genderTolook = 'female';

    let data = firebase
      .database()
      .ref('users/')
      .orderByChild('gender')
      .equalTo(genderTolook);
    data.once('value', snapshot => {
      console.log(JSON.stringify(snapshot.val()));
    });
  }

共有1个答案

南宫俊喆
2023-03-14

您可以使用< code>array-contains-any查询来检查matches数组是否已经包含user_id。

var users = db.collection("users");
users.where('tempuser.matches', 'array-contains-any', [<USER_ID_TO_MATCH>]);

根据结果,您可以进行进一步的查询/操作。还可以将此查询与其他查询组合在一起。有关更多详细信息,请参阅文档。

 类似资料:
  • 主要内容:限制第一个和最后一个,其他过滤器Firebase提供了多种方式来过滤数据。 限制第一个和最后一个 下面我们来了解第一个和最后一个数据限制是什么。 方法返回从第一个开始向前的指定数量的项目。 方法返回从最后一个开始向前的指定数量的项目。 下面这个例子是展示如何工作的。 由于在数据库中只有三个运动员数据,这里将限制查询返回一个运动员数据。 示例 现在,参考下面的例子 - 控制台会记录第一个查询得到前两个运动员数据,第二个查询得到最后

  • 我在一个Android应用程序中使用Firebase数据库,每次用户启动时,我都会在数据库中存储一些值,为此我会执行以下操作: 正如您在子方法中看到的,如果称为“usrId”,它将创建usrId目录,并在其中添加所有neccesary信息。但是我想为每个用户创建目录,所以我尝试传递usrId变量作为参数。但它不起作用。当我调试代码时,调试器说本地var usrId无法识别,我的问题是如何在Fire

  • 我已经花了几个小时阅读产品分支中的0和1。请在Firebase数据库有经验的人帮助我:(

  • 我需要将数据从Firebase实时数据库切换到Firestore DB。我该怎么做? 视频主要关注实时db,但我认为由于我没有激活实时db,它会转到Firestore。但我让它工作的唯一方法是启用实时db。所以我可以在Firebase中插入和读取数据,但我需要它在Firestore中。 任何帮助都是非常感激的。

  • 查看其他关于堆栈溢出的问题,有人说这可能是因为valueEventListener的位置不正确,但...不是吗?我正在钻进食物条目/营养条目,但我不知道如何钻进更深。没办法匿名给孩子打电话?我尝试调用childEventListener而不是valueEventListener,其他的都一样,但我再也没有得到那个消息,但我仍然无法检索到我想要的数据。 编辑: 谢谢你到目前为止的帮助。根据下面Has