我想知道是否有人设法指定通常在您创建帐户时为您自动生成的Firebase用户UID。我想这样做的原因是,在我的应用程序中,我们正在与医生和患者打交道。医生可以为患者创建一个帐户,他们可以声称该帐户可以使用该帐户。将它们变成标准的firebase用户,或者他们可以将其保留为无人认领。无论哪种方式,这个患者帐户都可以与其他医生共享,以便医生可以阅读咨询说明等。
医生必须是auth&#firebase用户,因此有一个firebase生成的UID作为users
节点中的密钥。尚未声明其帐户的患者居住在unclaimedUsers
节点中。用户和无人认领用户之间的唯一区别是患者主键将是他们的电子邮件地址,而用户主键将是他们创建帐户时生成的firebase UID。
而不是通过他们的电子邮件地址将其存储在“无人认领的用户”中。节点,我希望使用UID存储无人认领的用户,然后我可以告诉firebase在我为其创建帐户时使用它们并将其用户对象从unclaimedUsers
移动到users
节点。
这样,当一个帐户被声明时,不需要在整个数据结构中进行任何更新,因为在声明帐户之前,它仍然可以共享,并且混合使用UID和电子邮件地址'不干净。
我已经查看了用于firebase的REST和iOS SDK,并且似乎没有一种方法可以设置帐户将被分配的UID - 使用标准的电子邮件/密码验证功能,和社会功能。我还没有尝试过的唯一方法是滚动我自己的自定义身份验证,因为如果我这样做的话,我会失去firebase的许多好处。
我正在使用的结构是附加的 - 顶部对象名为user
,这将是一个UID,如DdxfJdkR0JX1fpXcV07eotxn3M33
- 其中第二个对象显示unclaimed
,这将是某人的电子邮件地址。
"user": {
"address": "1 infinity loop",
"country": "AU",
"displayPicture": "https://static.pexels.com/photos/7720/night-animal-dog-pet.jpg",
"dob": "13/09/1991",
"email": "some@guy2.com",
"firstName": "henry",
"lastName": "hardy",
"mobileNumber": "0400000000",
"postcode": "Z4351",
"pushNotifications": true
},
"unclaimed": {
"address": "1 infinity loop",
"country": "AU",
"displayPicture": "https://static.pexels.com/photos/7720/night-animal-dog-pet.jpg",
"dob": "13/09/1991",
"email": "some@guy.com.au",
"firstName": "henry",
"lastName": "hardy",
"mobileNumber": "0400000000",
"postcode": "Z4351",
"pushNotifications": true
}
答案 0 :(得分:0)
尝试将Firebase端点保存到您的数据库中,并确保在从firebase API检索端点时为更改端点创建一些api。因为端点ID有时会过期
如果您想要注意特定用户,可以通过他们的电子邮件查询或获取其终端订阅ID。