javascript - 如何在firebase实时数据库中使用子键查找父键?
问题描述
在firebase实时数据库中,我的项目具有如下结构:
- posts
- user_id
- post_id
- post_content = "..."
- date = ...
...
我如何通过 post_id 找到 user_id?
我之前已经搜索过,但我找不到适合我的情况的解决方案。如果有什么我错过了,请报告我,我会感谢你的。
我曾尝试使用 orderByKey() 和 orderByChild() 方法,但它们并没有帮助我处理这个问题。最后,我能够使用以下逻辑找到想要的 user_id:
firebase.database().ref("posts")
.once("value", function(snapshot) {
snapshot.forEach(function(snapshot1) {
snapshot1.forEach(function(snapshot2) {
if (snapshot2.toJSON().postId === "post_id") {
var topicID = snapshot1.key;
console.log(topicID);
}
});
});
}, (e) => {
console.log(e);
});
可以看出,这不是查找 user_id 的最佳方法,因为该方法会在客户端加载大量数据。
那么,当我只知道 post_id 时,如何使用 firebase 查询方法或任何其他方法找到 user_id?
解决方案
一种解决方法是您可以将user_id保存在post_id节点中
- 帖子
- 用户身份
- post_id
- post_content = "..."
- 日期 = ...
- user_id = #id ...
- post_id
- 用户身份
推荐阅读
- java - 无法制作 shell 脚本来制作 jar 文件
- flutter - Move Data from one Node to another in Firebase Realtime Database in Flutter
- class - What should I do if behavior of subclass doesn't corresponds behavior of superclass?
- c# - Access Attribute data from method
- javascript - Map new object from two objects array angular typescript baesed on id
- linux - How to subtract each value in a column from same number in a .txt file in Linux?
- javascript - Manage state for 2 components same time vuex
- mongodb - Number of maximum apps that can be connected in database
- html - Creating customize search in sharepoint using web part custom content -HTML
- postgresql - Get matching elements from an array comparison