Node.js 在实时数据库Firebase中存储数据的正确结构
我有一个手机应用,用户可以在上面注册手机号码。当一个用户注册成功时,应用程序请求用户访问联系人目录的权限。在用户给出所需的权限后,我将用户的联系号码存储到firebase DB 稍后,如果新用户注册,我希望查看他的哪些联系人已在我的应用程序中注册,并向他们发送应用程序内通知,如下所示:Node.js 在实时数据库Firebase中存储数据的正确结构,node.js,firebase,firebase-realtime-database,firebase-admin,Node.js,Firebase,Firebase Realtime Database,Firebase Admin,我有一个手机应用,用户可以在上面注册手机号码。当一个用户注册成功时,应用程序请求用户访问联系人目录的权限。在用户给出所需的权限后,我将用户的联系号码存储到firebase DB 稍后,如果新用户注册,我希望查看他的哪些联系人已在我的应用程序中注册,并向他们发送应用程序内通知,如下所示: - userContactNumbers - userContactNumber1 - registerUserId1: true - userContactNumber2
- userContactNumbers
- userContactNumber1
- registerUserId1: true
- userContactNumber2
- registerUserId1: true
- registerUserId2: true
- userContactNumber3
- registerUserId1: true
- userContactNumber4
- registerUserId1: true
您的朋友/联系人ABC已在XYZ应用程序上注册,欢迎他/她
我目前正在firebase实时数据库中以以下格式存储数据
contacts/"+registeredUserMobileNo+"/contacts/"+UserContactNumber1);
contacts/"+registeredUserMobileNo+"/contacts/"+UserContactNumber2);
我如何使用当前数据检查他有多少联系人已在我的应用程序中注册
我能创建一个更好的数据库结构吗
谢谢,我建议您对数据进行非规范化,并创建两个不同的节点: 第一个节点正是您在帖子中提到的节点:
- contacts
- registerUserId1
- userContacts
- userContactNumber1: true
- UserContactNumber2: true
- registerUserId2
- userContacts
- userContactNumber3: true
- userContactNumber4: true
- UserContactNumber2: true
第二个节点将包含UserContactNumber
(即联系人目录中的联系人)的列表,这样,当其中一个UserContactNumber成为应用程序的用户时,您可以轻松地获取您必须向其发送警报的用户。例如:
- userContactNumbers
- userContactNumber1
- registerUserId1: true
- userContactNumber2
- registerUserId1: true
- registerUserId2: true
- userContactNumber3
- registerUserId1: true
- userContactNumber4
- registerUserId1: true
然后,当一个新用户注册时,您只需查询userContactNumbers节点,查看它是否包含新的用户号码,如果是这样,您将相应地向号码列表发送警报
为了使这两个节点保持同步,您应该使用update()
方法,如文档中所述