Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
firebase.auth响应的哪些部分应该本地存储(在reactjs应用程序中)?他们是干什么的?_Firebase_React Native - Fatal编程技术网

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

firebase.auth响应的哪些部分应该本地存储(在reactjs应用程序中)?他们是干什么的?,firebase,react-native,Firebase,React Native,下面是通过firebase软件包((遵循本教程:)对firebase中的用户进行身份验证的文档,以及react本机应用程序中的DB访问,现在我从代码中获得了一个成功的firebase auth response对象 firebase.auth().signInWithEmailAndPassword(email, password) .then((res) => { console.log(`Login successful: ${JSON.stringi

下面是通过firebase软件包((遵循本教程:)对firebase中的用户进行身份验证的文档,以及react本机应用程序中的DB访问,现在我从代码中获得了一个成功的firebase auth response对象

    firebase.auth().signInWithEmailAndPassword(email, password)
    .then((res) => { 
        console.log(`Login successful: ${JSON.stringify(res)}`)
        //TODO: signin stuff, eg. storing user session credentials?
        this.props.navigation.navigate('MainNav')
    })
    .catch((res) => {
        console.log(`Login was not successful: ${JSON.stringify(res)}`)
        this.setState({signinError: res.message})
    });
形式

    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",
     }
我的问题是:我应该如何处理这些价值观?不同的令牌做什么(firebase和moblie应用程序的全新功能)?哪些应该存储,哪些应该以其他方式访问


查看firebase文档,我没有看到任何用于访问firebase DB的令牌(我实际上使用的是firestore),因此我对它们的使用感到有点困惑。

使用
。onAuthStateChanged
(异步)来处理应用程序的身份验证状态。除了获取
currentUser.uid
之外,您不需要对这些值执行任何操作。Firebase.auth为您处理所有这些内容。如果您想存储用户信息,您应该通过表单收集这些信息,并将其存储在数据存储中的
users/uid
节点下-可能是firstName、lastName、生日、favoriteColor等。

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

除此之外,您还可以使用来检索相同的信息。在某些情况下,例如如果您的用户使用社交帐户登录,您可能需要访问
accessToken
或该提供商信息的类似部分来执行API调用或其他操作。在这些情况下,您也可以使用
currentUser
来获取所需的信息,这样您就不需要在那里存储任何内容

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

除此之外,您始终可以使用检索相同的信息。在某些情况下,例如如果您的用户使用社交帐户登录,您可能需要访问
accessToken
或该提供商信息的类似部分来执行API调用或其他操作。在这些情况下,您也可以使用
currentUser
来获取所需的信息,这样您就不需要在那里存储任何内容

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