用户和朋友使用 Firebase (AngularFire) 进行设计和实施
Users & Friends Design and Implementation with Firebase (AngularFire)
我正在尝试为我的 Google Firebase Ionic 应用程序使用 AngularFire。我特别面临数据库设计和之后实施的问题。
我的目标是让用户拥有一些基本信息,例如姓名和电子邮件。
每个用户都应该能够添加朋友。这些朋友存储在一个列表中。在 Firebase 数据库中执行此操作的最佳方法是什么?用户是否应该有一个指向其他用户 ID 的好友列表节点?
示例:
User
User1
Name
Email
Friends
Friend1
Friend2
或者是否应该有一个单独的 "friendships" 树,其节点采用两个用户 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()
将两个用户从彼此的列表中删除。
使用security rules控制谁可以看到谁的数据。例如 user1
的数据将对 user1
或 userid
在 friendlist/user1/
中的人可见
我正在尝试为我的 Google Firebase Ionic 应用程序使用 AngularFire。我特别面临数据库设计和之后实施的问题。
我的目标是让用户拥有一些基本信息,例如姓名和电子邮件。
每个用户都应该能够添加朋友。这些朋友存储在一个列表中。在 Firebase 数据库中执行此操作的最佳方法是什么?用户是否应该有一个指向其他用户 ID 的好友列表节点?
示例:
User
User1
Name
Email
Friends
Friend1
Friend2
或者是否应该有一个单独的 "friendships" 树,其节点采用两个用户 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()
将两个用户从彼此的列表中删除。
使用security rules控制谁可以看到谁的数据。例如 user1
的数据将对 user1
或 userid
在 friendlist/user1/