firebase.auth响应的哪些部分应存储在本地(在reactjs应用中)?他们在做什么?

时间:2018-07-11 20:03:06

标签: firebase react-native

以下文档介绍了如何通过Firebase软件包(https://firebase.google.com/docs/auth/web/password-auth(按照本教程:https://medium.com/dailyjs/react-native-email-authentication-with-firebase-4be20142b0a9)在firebase中对用户进行身份验证和数据库访问中的身份验证和数据库访问,现在我从代码中获得成功的firebase auth响应对象

    Object {
       "apiKey": "qwerty",
       "appName": "[DEFAULT]",
       "authDomain": "myapp-z12345.firebaseapp.com",
       "createdAt": "1531206612000",
       "displayName": null,
       "email": "me@gmail.com",
       "emailVerified": false,
       ...
       "stsTokenManager": Object {
            "accessToken":"qwerty",
            "apiKey": "qwerty",
            "expirationTime": 1531339781120,
            "refreshToken": "qwerty",
       },
       "uid": "qwerty123",
     }

形式

{{1}}

我的问题是:我应该如何处理这些价值观?不同的令牌有什么作用(对于Firebase和moblie应用程序来说是全新的)?哪些应该存储,哪些应该以其他方式访问?

看一下Firebase文档,我没有看到任何用于访问Firebase数据库的令牌(我实际上是在使用Firestore,https://firebase.google.com/docs/firestore/quickstart),所以对于它们的使用有些困惑。

2 个答案:

答案 0 :(得分:3)

使用.onAuthStateChanged(异步)来处理应用程序的身份验证状态。除了获取currentUser.uid之外,您不需要对这些值做任何事情。 Firebase.auth为您处理所有这些东西。如果要存储用户信息,则应通过表单收集这些信息,并将其存储在数据存储区的users/uid节点下-可能是firstName,lastName,birthday,favoriteColor等。

答案 1 :(得分:1)

除了@Ron Royston's answer之外,您始终可以使用currentUser检索相同的信息。在某些情况下(例如,如果您的用户使用社交帐户登录),您可能需要访问accessToken或该提供商信息的类似部分才能进行API调用或其他操作。在这种情况下,您可以再次使用currentUser来获取所需的信息,因此您无需从那里存储任何内容。

该信息主要用于一些检查,例如邮件是否已通过验证,是否未发送验证邮件或未显示通知,检查用户如何登录,社交或电子邮件,必要时执行一些特殊操作等。