在实时数据库 Firebase 中存储数据的正确结构
Correct Structure for storing data in realtime DB Firebase
我有一个移动应用程序,用户可以在 mobile_number 上注册。当一个用户成功注册后,应用程序会要求访问用户的通讯录权限。用户授予所需权限后,我将用户的联系电话存储到 firebase DB。
稍后如果有新用户注册,我想查看他的哪些联系人已在我的应用程序中注册,并向他们发送应用程序内通知,如下所示:
Your friend/Contact ABC has registered on XYZ app, welcome him/her.
我目前正在以下列格式将数据存储在 firebase 实时数据库中。
contacts/"+registeredUserMobileNo+"/contacts/"+UserContactNumber1);
contacts/"+registeredUserMobileNo+"/contacts/"+UserContactNumber2);
我如何使用当前数据检查他有多少联系人已在我的应用程序中注册?
我可以创建更好的数据库结构吗?
谢谢,
我建议您对数据进行非规范化并创建两个不同的节点:
第一个节点就是您在 post 中提到的节点:
- 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()
方法,如文档中所解释的 here。
我有一个移动应用程序,用户可以在 mobile_number 上注册。当一个用户成功注册后,应用程序会要求访问用户的通讯录权限。用户授予所需权限后,我将用户的联系电话存储到 firebase DB。
稍后如果有新用户注册,我想查看他的哪些联系人已在我的应用程序中注册,并向他们发送应用程序内通知,如下所示:
Your friend/Contact ABC has registered on XYZ app, welcome him/her.
我目前正在以下列格式将数据存储在 firebase 实时数据库中。
contacts/"+registeredUserMobileNo+"/contacts/"+UserContactNumber1);
contacts/"+registeredUserMobileNo+"/contacts/"+UserContactNumber2);
我如何使用当前数据检查他有多少联系人已在我的应用程序中注册?
我可以创建更好的数据库结构吗?
谢谢,
我建议您对数据进行非规范化并创建两个不同的节点:
第一个节点就是您在 post 中提到的节点:
- 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()
方法,如文档中所解释的 here。