2017-04-15 52 views
0

我是firebase的新用户,我已经按照基本教程实施了带有用户名/密码认证以及Google认证的应用。使用谷歌的Firebase应用用户注册

这显然允许我登录到应用程序,但我想注册一个用户并为他们指定一个特定的角色。作为一个例子,我可能在应用程序中有两种类型的用户,一个买家和一个卖家或者一个请求服务和服务提供者的用户。我有一个电子邮件/密码用户的基本注册页面,我可能会添加一个额外的字段来表明他们是什么类型的用户,但我不知道如何实施联合身份提供商的注册页面,如谷歌和Twitter。

如何使用其中一个提供者注册具有特定角色的用户?

我已经搜索了一些例子,但是我一直没有找到我想要的。

+0

查看大多数热门答案:https://www.google.com/search?q=site:stackoverflow.com+firebase+add+user+properties –

+0

谢谢@FrankvanPuffelen。我必须错过某些明显的东西,但我仍不明白它如何与Google,Twitter或Facebook等身份提供者协同工作 – pjr

+0

您无法向现有身份提供者添加属性。因此,您必须创建自己的身份提供者或将其他位置的属性存储在您尝试保护的系统可以访问的位置。 –

回答

1

不幸的是,您无法向FirebaseUser添加额外的字段。你必须使用“real-time database”。您可以创建名为“users”的数据库节点并在那里保存用户特定的字段(使用FirebaseUser UID作为数据库的关键字)。然后,当用户在您的应用程序中登录时,您可以从数据库获取他们的信息。

详细解释:您必须使用Firebase身份验证登录并注册用户,之后(例如在注册完成时)将用户信息保存在实时数据库节点中。然后登录后(使用Firebase身份验证),您将使用用户的uid从实时数据库中获取所有用户的详细信息。如果您的用户可以查看其他用户的配置文件,那么您也需要这个功能......您无法从“身份验证表”中获取其他用户信息。

+0

感谢@Utnapishtim我将研究单独的用户表,但我如何注册一个用户,该用户将通过此表通过Google,Facebook,Twitter进行身份验证?我似乎无法找到一个这样的例子。 – pjr

+0

不,您必须使用Firebase身份验证来注册和登录用户。您必须使用实时数据库来存储Firebase未保存在“身份验证”中的其他信息。我将编辑答案。 – Utnapishtim

相关问题