2017-04-01 9 views
0

:私ができるユーザが画像を好きなようなシステムを実装しているFirebase LIKEボタンとカウンタ

Pictures 
-pictureID 
-- name 
-- date 

Like 
-pictureID 
-- userID: true 
-- userID: true 

likePerUser 
-userID 
--pictureID: true 
--pictureID: true 

Users 
-userID 
-- name 
-- lastname 

。 (swift3)

私はこれを行うことにより、特定の絵を気に入ったユーザーの数を取得することができるよ:ユーザーが(私は自分のユーザーIDを知っている)言っていたかどうか、私は見つけることができます

ref.child("Like").child(pictureID!).observeSingleEvent(of: .value, with: { (snapshot) in 

      print(snapshot.childrenCount) 

     }) 

を写真(私はそれもpictureID)を知っていますか?

だから私は...今私はあるCurrentUserが trueに等しいpictureIdがあるが、このコードは動作しない子の下で、ノードlikeperuser下かどうかを確認する必要があり、構造やコードを編集

ref.child("likePerUser").child(FIRAuth.auth()!.currentUser!.u‌​‌​id).queryOrdered(b‌​yC‌​hild: pictureId).queryEqual(toValue: true).observe(FIRDataEventType.value, with:{(snap)in 

答えて

1

NoSQLでは、アプリケーションに必要なユースケースのデータをモデル化することがよくあります。あなたのアプリは、あなたが気に入ったものをユーザーに描写し知りたいユースケースを持っている場合、各ユーザーが気に入った写真の一覧格納して:この(追加の)構造で

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

を、同類を調べますfor-a-userはあなたの現在の構造にあるLike-for-a-Pictureを探し出すのと同じくらい簡単です。

このトピックの概要については、NoSQL data modelingFirebase for SQL developersをお読みください。

関連する問題