swift - Firebase LIKE 按钮和计数器

标签 swift firebase firebase-realtime-database

在这样的 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!.u‌​‌​id).queryOrdered(b‌​yC‌​hild: pictureId).queryEqual(toValue: true).observe(FIRDataEventType.value, with:{(snap)in 

最佳答案

在 NoSQL 中,您通常会针对应用所需的用例对数据进行建模。因此,如果您的应用有一个用例,您想知道用户喜欢哪些图片,请存储每个用户喜欢的图片列表:

LikesPerUser
- userID
-- pictureID: true
-- pictureID: true

使用此(附加)结构,查找用户的点赞数就像在当前结构中查找图片的点赞数一样简单。

有关此主题的详细介绍,请阅读 NoSQL data modelingFirebase for SQL developers .

关于swift - Firebase LIKE 按钮和计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43156867/

相关文章:

swift - 自动从 Firebase 数据库中删除数据

ios - 模拟器上的 LAContext UI

ios - 如何在 Swift 4 中使用未知服务器数据类型在对象映射器中属性?

firebase - 类型 'map' 上不存在属性 'FirebaseListObservable<any[]>'

swift - 如何从 Firebase 获取图像并将其显示为 ImageView ?

基于日期的 Firebase 数据库规则

ios - 如何使用 Delegate 方法知道按钮在哪个单元格中被点击。 swift

ios - 在 iOS 中匹配按钮框架

javascript - Firebase:如何始终强制登录?

firebase - 代码=17000 "The custom token format is incorrect. Please check the documentation."