在这样的 Firebase 结构中:
Pictures
-pictureID
-- name
-- date
Like
-pictureID
-- userID: true
-- userID: true
likePerUser
-userID
--pictureID: true
--pictureID: true
Users
-userID
-- name
-- lastname
我实现了一个点赞系统,用户可以在其中点赞图片。 (swift3)
通过这样做,我可以获得喜欢特定图片的用户数量:
ref.child("Like").child(pictureID!).observeSingleEvent(of: .value, with: { (snapshot) in
print(snapshot.childrenCount)
})
我如何找到用户(我知道他的用户 ID)是否喜欢一张图片(我也知道它的图片 ID)?
所以我编辑了结构和代码,现在我需要检查节点 likeperuser 下,子 currentUser 下是否有一个 pictureId 等于 true 但是这段代码不起作用...
ref.child("likePerUser").child(FIRAuth.auth()!.currentUser!.uid).queryOrdered(byChild: pictureId).queryEqual(toValue: true).observe(FIRDataEventType.value, with:{(snap)in
最佳答案
在 NoSQL 中,您通常会针对应用所需的用例对数据进行建模。因此,如果您的应用有一个用例,您想知道用户喜欢哪些图片,请存储每个用户喜欢的图片列表:
LikesPerUser
- userID
-- pictureID: true
-- pictureID: true
使用此(附加)结构,查找用户的点赞数就像在当前结构中查找图片的点赞数一样简单。
有关此主题的详细介绍,请阅读 NoSQL data modeling看Firebase for SQL developers .
关于swift - Firebase LIKE 按钮和计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43156867/