gpt4 book ai didi

javascript - Firebase 查询引用 : true

转载 作者:行者123 更新时间:2023-12-03 04:09:45 25 4
gpt4 key购买 nike

我在获取 Firebase 上结构复杂的数据时遇到问题。我有这样的结构:

place1: {
visits: {
user1: true,
user2: true,
user3: true,
user4: true
}
},
place2: {
visits: {
user1: true,
user3: true,
user4: true
}
},
place3: {
visits: {
user2: true,
user3: true,
user4: true
}
}

如何查询去过所有地点的所有用户?

非常感谢您的帮助!

最佳答案

您当前的数据结构允许您有效地细化所有去过特定地点的用户。它不允许您有效地查询特定用户去过的所有地点。

要允许第二个查询,您应该添加第二个数据结构:

user1: {
place1: true,
place2: true
},
user2: {
place1: true,
},
user3: {
place1: true,
place3: true
},
user4: {
place1: true,
place2: true,
place3: true,
place4: true
}

有了这个附加结构(通常称为倒排索引),您就可以找到每个用户去过的地方。

由于您现在有两个结构,因此您需要确保添加对这两个位置的每次访问。一次多位置更新即可实现:

function recordVisitor(uid, placeid) {
var updates = {};
updates[`/userVisits/${uid}/${placeid}`] = true;
updates[`placeVisitors/${placeid}/${uid}`] = true;
firebase.database().ref().update(updates);
}

另请参阅我对也需要倒排索引的相关用例(查询类别中的项目)的回答:http://stackoverflow.com/questions/40656589/firebase-query-if-child-of-child-contains-a-value

关于javascript - Firebase 查询引用 : true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44379073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com