如何使用Facebook登录反应本机应用程序

时间:2017-08-02 08:19:08

标签: reactjs react-native

我想在我的反应原生应用程序中使用facebook登录..我在web上使用firebase(reactJs)..现在我使用相同的方法反应原生应用程序但它不起作用...

我想要fbSignin按钮,它允许我使用用户个人资料图片和名称等。

这是我的代码..

import React, { Component } from "react"
import { Container, Item, Button, Text } from "native-base"
import * as firebase from "firebase"
import { FBLogin, FBLoginManager } from "react-native-facebook-login"

// Initialize Firebase

var config = {
  apiKey: "AIzaSyAK7dr25d-qnsHCdvkeoVPWs7Q0",

  authDomain: "quiz-appasdn-ba8c1.firebaseapp.com",

  databaseURL: "httpsasdasdasdasd-ba8c1.firebaseio.com",

  projectId: "quiz-asdaasdasdc1",

  storageBucket: "pplicationasdasd-asddappspot.com",

  messagingSenderId: "23764257465237"

};

firebase.initializeApp(config);



var provider = new firebase.auth.FacebookAuthProvider();


class App extends Component {

  fbLogin() {

    firebase.auth().signInWithPopup(provider).then(function (result) {

      var token = result.credential.accessToken;

      var user = result.user;

    }).catch(function (error) {

      var errorCode = error.code;

      var errorMessage = error.message;

      var email = error.email;

      var credential = error.credential;

    });

  }



  render() {

    return (

      <Button onPress={this.fbLogin.bind(this)}>

        <Text>faacebook Login</Text>

      </Button>
    );
  }
};

导出默认应用

提前感谢..

2 个答案:

答案 0 :(得分:1)

firebase.auth().signInWithPopup(provider)不适用于本地反应,你必须使用firebase.auth().signInAndRetrieveDataWithCredential(credential)react-native-fbsdk一起登录facebook ..
这是片段

     <LoginButton
       onLoginFinished={
        (error, result) => {
          if (error) {
            alert("login has error: " + result.error);
          } else if (result.isCancelled) {
            alert("login is cancelled.");
          } else {
            AccessToken.getCurrentAccessToken().then(
              (data) => {
                const provider = firebase.auth.FacebookAuthProvider;
                const credential = provider.credential(data.accessToken.toString());
                firebase.auth().signInAndRetrieveDataWithCredential(credential)
                .then(function(userCredential) {
                  console.log(JSON.stringify(userCredential));
                });
              }
            )
          }
        }
      }
      onLogoutFinished={() => alert("logout.")}/>  

资源:
Facebook React Native SDK
Firebase signInAndRetrieveDataWithCredential

答案 1 :(得分:0)

我只知道lib反应原生使用登录facebook https://developers.facebook.com/docs/react-native/login mybe这可以帮助你:)