在React Native和Firebase

时间:2017-10-27 13:59:08

标签: facebook firebase react-native-fbsdk

我对React Native来说真的很新。我的目的是通过存储FBSDK的loginWithReadPermissions提供的凭证,用户不必在每次启动应用程序时登录,而是在首次安装后只登录一次。也许将它存储在某个地方我可以检查componentWillMount()中的凭据。

我的第一个问题是:FBSDK会自动执行此操作吗?如果没有,我该怎么做?

我有Facebook Auth的代码:

facebookAuthentication(callback){
LoginManager.logInWithReadPermissions(['public_profile', 'user_likes', 'email']).then(
  function(result) {
    if (result.isCancelled) {
      alert('Inicio de sesión cancelado');
    } else {
      AccessToken.getCurrentAccessToken().then((accessTokenData) =>{
        const credential = Firebase.auth.FacebookAuthProvider.credential(accessTokenData.accessToken);
        Firebase.auth().signInWithCredential(credential).then((result) =>{
          return callback;
        }, (error) =>{
          console.log('Error en firebase' + error);
        });
      }, (error) =>{
        console.log('ACCESS TOKEN ERROR: ' + error);
      });
    }
  },
  function(error) {
    console.log('Login failed with error: ' + error);
  }
);

}

代码完美无缺,提前谢谢。

1 个答案:

答案 0 :(得分:1)

使用React Native,您可以使用Asyncstorage,这基本上是本地存储对于Web领域:键值对迷你数据库。
实际上,您可以使用Firebase的firebase.auth().currentUser检索当前登录的用户。如果它返回有效的用户对象,也许你可以检查app启动。