电子邮件注册被视为伪造内容简单登录→电子邮件标签下的新记录。
但是当用户使用Facebook或Google之类的OAuth2登录进行登录时会发生什么?
从网站上取下example并向其应用多个上下文:
{
"rules": {
".read": true,
"comments": {
"$comment": {
".write": "auth != null",
".validate": "auth.id == newData.child('userid').val() && newData.hasChildren(['userid', 'body']) && newData.child('body').isString()"
}
}
}
}
如果用户使用Facebook帐户登录,Firebase会在与电子邮件/密码登录相同的上下文中创建新的auth
记录和范围安全规则吗?
如果是这样,那些注册的可见方式与我们的电子邮件身份验证类型相同?您是否以相同的方式对(删除)等记录执行操作?
设置主userId集合的最佳方法是什么,使用户能够将多种帐户类型绑定在一起? (Facebook,Google和电子邮件都捆绑在一起)
答案 0 :(得分:2)
请记住"创建用户"在该控制台(以及Firebase Simple Loign电子邮件/密码身份验证)中,只会在电子邮件地址和密码之间生成新的映射,并为该帐户提供唯一的自动递增ID。
Firebase简单登录不会自动在您的Firebase中存储任何数据,但在登录后,它会自动生成新的Firebase身份验证。您可以使用auth
变量编写安全规则的令牌。
使用任何其他提供程序的登录方法当前不存储任何数据,但将来可能会有更多功能。使用Facebook / Google /等登录还可以获取大量有用的用户元数据并将其发送到客户端,此外还可以创建Firebase身份验证。用于安全规则的令牌。要在所有提供商中查看auth
变量的内容,请参阅“验证后”'每个简单登录提供程序文档页面上的部分,例如:Facebook。除了电子邮件/密码提供者之外,没有任何提供者删除的概念。
如果您希望拥有与多个社交凭据相关联的用户帐户,则可以完成,但目前有点笨重(和手动)。有关详细演练,请参阅How can I login with multiple social services with Firebase?。