我目前正在使用firebase
制作ionic app
。我对firebase simple login
(social auth
)使用facebook, twitter, email & password
。身份验证工作正常,$broadcasts
authed user
。但是,它似乎无法在实际的firebase db
中创建用户。我想知道如何使用authed
获取app
的用户。谢谢,非常感谢您的帮助:)。
答案 0 :(得分:12)
对于它支持的大多数身份验证协议,Firebase不会将用户数据存储在任何位置。即使对于 存储数据的协议(我只知道电子邮件+密码这样做),它也会将此信息存储在您的应用程序无法访问的位置(尽管您可以在其中找到这些用户) Firebase的仪表板。)
它不会在Firebase中存储配置文件或用户状态。要保留用户数据,您必须将其保存到Firebase。
大多数应用程序最终都在做的事情是在Firebase中保留他们自己管理的用户列表。因此,当用户首次对应用程序进行身份验证时,它会在/users/<uid>
下创建一个包含该用户信息的节点。
请参阅Firebase documentation that describes storing user data的此部分。
答案 1 :(得分:6)
Firebase不会在Firebase实例中存储配置文件或用户状态。要保留用户数据,您必须将其保存到Firebase。
Firebase提供了多个authentications services
使用现有的社交登录提供商,如Facebook,Twitter,Google和GitHub。使用这些服务可为用户提供访问应用程序的选项,而无需创建新帐户。
使用内置支持登录电子邮件&amp;密码。这需要由Firebase处理的注册和帐户创建。用户帐户信息存储在您的应用程序之外。
使用自定义身份验证来实施现有的服务器端身份验证,单点登录,旧系统或基于第三方OAuth的服务(例如Yahoo)。
经过身份验证后,Firebase会向您的应用程序返回一个变量auth
,您可以将其用于authorization and access control。对于未经身份验证的用户,此变量为null,但对于经过身份验证的用户,此变量是包含用户唯一(auth.uid
)的对象以及可能包含该用户的其他数据。
如果您想要保留其他用户信息,例如姓名 和位置,然后你需要使用
auth.uid
并将其存储在你的 带有其他个人资料数据的Firebase。
在内部,Firebase会生成JSON Web令牌(JWT)并通过使用这些令牌调用Firebase.loginWithCustomToken()来创建经过身份验证的会话。为每个用户分配一个uid(唯一ID),保证在所有提供商之间保持不同,并且永远不会为特定的经过身份验证的用户进行更改。