node.js - 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 我该怎么办?
解决方案
您当前的数据结构允许您轻松查找特定用户的兴趣。但是,它不允许针对特定兴趣轻松查找用户。
为了允许查找感兴趣的用户,您需要添加一个倒排数据结构/Interests/$interest
,其中包含每个用户的用户 ID:
"Interests": {
"dogs": {
"2rnWA7TF11gSWxec7MsCA5iRhjw1": true,
"3Id9oX0ZOEM00XJlnR07gGrHs762": true
},
"cats": {
"2rnWA7TF11gSWxec7MsCA5iRhjw1": true,
"3Id9oX0ZOEM00XJlnR07gGrHs762": true
},
"technology": {
"2rnWA7TF11gSWxec7MsCA5iRhjw1": true,
}
...
}
另见:
推荐阅读
- fetch - 我的 useEffect 代码有什么问题,为什么我的状态变量为空?
- vba - SSRS 文本框属性操作选项“指定报告”表达式是否可以包含多个报告而没有?
- reactjs - useState 调用错误 Too many re-renders。React 限制渲染次数以防止无限循环
- pygame - 移动一个对象,而不必重新绘制它下面的内容。游戏
- c# - Xamarin - 从 CollectionView 中删除项目,命令不会被调用
- java - Java 正则表达式匹配 html 字符串中的特定 url
- reactjs - 防止React 中组件的默认设置
- tensorflow - Nvidia Waveglow 模型与 WaveNet 的比较,均基于 Google 的 Deepvoice 进行文本到语音合成
- java - 将 JWT 令牌从一个 SPRING API 传递到另一个 API 的最佳方法
- python - 对如何执行遥测的疑问:使用开发板和笔记本电脑