我正在尝试将AngularFire用于我的Google Firebase Ionic应用程序。我的数据库设计以及之后的实现都特别遇到问题。
我的目标是吸引用户,并提供一些基本信息,例如姓名和电子邮件。
每个用户都应该可以添加朋友。这些朋友存储在列表中。在Firebase数据库中解决此问题的最佳方法是什么?用户是否应该有一个指向其他用户ID的好友列表节点?
例子:
User
User1
Name
Email
Friends
Friend1
Friend2
还是应该有一个单独的“友谊”树,其中的节点需要两个用户ID并因此将它们连接起来?例子:
Friendships
Friendship1
User1
User2
Friendship2
etc...
同样,鉴于我所描述的第一个选项(到目前为止已实现),我通过以下方式检索我的朋友:
var friendsRef = firebase.database().ref('users/' + firebase.auth().currentUser.uid + '/friends');
$scope.friends = $firebaseArray(friendsRef);
这很好。问题变成了,我该如何在他们自己的数据库用户位置中检索与每个朋友相关联的数据,例如姓名和电子邮件?
我希望有人可以给我一些建议,以帮助我,因为我已经尝试了很长时间了。非常感谢!
我会选择第一个。但是,随着数据的扁平化。
users
user1
name
email
user2
user3
friendlist
user1
user2
user5
user11
user2
user3
这样,您在查询用户数据时就不会检索整个数据(带有好友列表)。
使用update()
方法可一次将数据保存在多个位置。如果某人想删除某个用户的朋友,则可以update()
从对方列表中删除这两个用户。
使用安全规则来控制谁可以看到谁的数据。例如user1
,的数据将对user1
或具有的数据可见userid
。friendlist/user1/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句