首页 > 解决方案 > Firebase 函数使用 nodejs 搜索查询实时数据库

问题描述

这是我的数据库

"Users" : {
        "2rnWA7TF11gSWxec7MsCA5iRhjw1" : {
          "favoriteCount" : 1,
          "interest" : [ "dogs", "cats", "technology" ],
          "speciality" : [ "Swift" ],
        },
        "3Id9oX0ZOEM00XJlnR07gGrHs762" : {
          "favoriteCount" : 7,
          "interest" : [ "dogs", "cats", "Asp.NET MVC", "JavaScript" ],
          "speciality" : [ "Microsoft Technologys" ],

      }

我想访问整个数据库中的用户信息interest=dogs 我该怎么办?

标签: node.jsfirebasefirebase-realtime-database

解决方案


您当前的数据结构允许您轻松查找特定用户的兴趣。但是,它不允许针对特定兴趣轻松查找用户。

为了允许查找感兴趣的用户,您需要添加一个倒排数据结构/Interests/$interest,其中包含每个用户的用户 ID:

"Interests": {
  "dogs": {
    "2rnWA7TF11gSWxec7MsCA5iRhjw1": true,
    "3Id9oX0ZOEM00XJlnR07gGrHs762": true
  },
  "cats": {
    "2rnWA7TF11gSWxec7MsCA5iRhjw1": true,
    "3Id9oX0ZOEM00XJlnR07gGrHs762": true
  },
  "technology": {
    "2rnWA7TF11gSWxec7MsCA5iRhjw1": true,
  }
  ...
}

另见:


推荐阅读