【问题标题】:Firebase LIKE button and counterFirebase LIKE 按钮和计数器
【发布时间】:2017-04-01 12:27:41
【问题描述】:

在这样的 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 

【问题讨论】:

    标签: swift firebase firebase-realtime-database


    【解决方案1】:

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

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

    有了这个(额外的)结构,查找用户点赞就像在当前结构中查找图片点赞一样简单。

    有关此主题的详细介绍,请阅读 NoSQL data modeling 并观看 Firebase for SQL developers

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-20
      • 1970-01-01
      • 2023-04-03
      • 2013-03-25
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      相关资源
      最近更新 更多