我目前正在使用firebase
制作ionic app
. 我正在使用firebase simple login
(social auth
)facebook, twitter, email & password
。身份验证完美运行,它$broadcasts
是authed user
. 但是,它似乎并没有在实际中创建用户firebase db
。我想知道如何获得一直在authed
使用我的app
.
3 回答
对于它支持的大多数身份验证协议,Firebase 不会将用户数据存储在任何地方。即使对于它确实存储数据的协议(我只知道这样做的电子邮件+密码),它也会将此信息存储在您的应用程序无法访问的位置(尽管您可以在 Firebase 的仪表板中找到这些用户)。
引用Firebase 文档:
它不会在您的 Firebase 中存储个人资料或用户状态。要保留用户数据,您必须将其保存到 Firebase。
大多数应用程序最终会做的是将用户列表保存在他们自己管理的 Firebase 中。因此,当用户首次使用应用程序进行身份验证时,它会在其下创建一个节点/users/<uid>
,其中包含该用户的信息。
请参阅描述存储用户数据的 Firebase 文档的这一部分。
Firebase 不会在您的 Firebase 实例中存储配置文件或用户状态。要保留用户数据,您必须将其保存到 Firebase。
Firebase 提供多种身份验证服务
使用现有的社交登录提供商,例如 Facebook、Twitter、Google 和 GitHub。使用这些服务为您的用户提供了一个选项来访问您的应用程序,而无需创建新帐户。
使用内置支持使用电子邮件和密码登录。这需要由 Firebase 处理的注册和帐户创建。用户帐户信息存储在您的应用程序之外。
使用自定义身份验证来实现现有的服务器端身份验证、单点登录、遗留系统或基于第三方 OAuth 的服务(例如 Yahoo)。
一旦通过身份验证,Firebaseauth
会向您的应用程序返回一个变量,您可以将其用于授权和访问控制。对于未经身份验证的用户,此变量为空,但对于经过身份验证的用户,它是一个包含用户唯一 ( auth.uid
) 和可能有关用户的其他数据的对象。
如果您想保留其他用户信息,例如姓名和位置,则需要使用
auth.uid
它并将其与其他配置文件数据一起存储在 Firebase 中。
Firebase 在内部生成 JSON Web 令牌 (JWT) 并通过使用这些令牌调用 Firebase.loginWithCustomToken() 创建经过身份验证的会话。每个用户都被分配了一个 uid(一个唯一的 ID),它保证在所有提供者中都是不同的,并且对于特定的经过身份验证的用户永远不会改变。