以下文档介绍了如何通过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),所以对于它们的使用有些困惑。
答案 0 :(得分:3)
使用.onAuthStateChanged
(异步)来处理应用程序的身份验证状态。除了获取currentUser.uid
之外,您不需要对这些值做任何事情。 Firebase.auth为您处理所有这些东西。如果要存储用户信息,则应通过表单收集这些信息,并将其存储在数据存储区的users/uid
节点下-可能是firstName,lastName,birthday,favoriteColor等。
答案 1 :(得分:1)
除了@Ron Royston's answer之外,您始终可以使用currentUser
检索相同的信息。在某些情况下(例如,如果您的用户使用社交帐户登录),您可能需要访问accessToken
或该提供商信息的类似部分才能进行API调用或其他操作。在这种情况下,您可以再次使用currentUser
来获取所需的信息,因此您无需从那里存储任何内容。
该信息主要用于一些检查,例如邮件是否已通过验证,是否未发送验证邮件或未显示通知,检查用户如何登录,社交或电子邮件,必要时执行一些特殊操作等。