Конфигурация провайдера идентификации не обнаружена - PullRequest
1 голос
/ 04 апреля 2019

Конфигурация провайдера идентификации не найдена

Я получаю эту ошибку, когда пытаюсь пройти аутентификацию в firebase с помощью FacebookAuthProvider. Я использую реактивную-native-fbsdk для интеграции аутентификации facebook с реактивно-родной. Моя цель - войти в систему пользователя firebase с токеном аутентификации и записать данные пользователя в коллекцию USERS внутри firestore.

Ниже мой код. Любая помощь приветствуется.!

fbAuth(){
        LoginManager.logInWithReadPermissions(['public_profile','email','user_photos']).then(
            (result)=>{
                this.handleCallBack(result),
                function(error){
                    console.log("error in facebook login.");
                }
            }
        );
    }
    handleCallBack(result){
        var _this = this;
        if(result.isCancelled){
            console.log("facebook login cancelled.");
        }else{
            AccessToken.getCurrentAccessToken().then(
                (data) => {
                    const token = data.accessToken;
                    fetch('https://graph.facebook.com/v2.8/me?fields=id,first_name,last_name,gender,birthday&access_token=' + token)
                    .then((response=>response.json()))
                    .then((json)=>{
                        const imageSize = 120;
                        const facebookID = json.id;
                        const fbImage = "https://graph.facebook.com/${facebookID}/picture?height=${imageSize}";
                    })
                    this.authenticate(data.accessToken)
                    .then(result =>{
                        const {uid} =  result;
                        _this.createUser(uid,json,token,fbImage);
                    })
            })
            .catch(error=>{
                    console.log(error);
            })   
        } 
    }
    authenticate = (token) => {
        const provider = firebase.auth.FacebookAuthProvider;
        const credential = provider.credential(token);
        var ret = firebase.auth().signInWithCredential(credential);
        return ret;
    }
    createUser = (uid,userData,token,dp) => {
        const defaults = {
          uid,
          token,
          dp,
          ageRange: [20, 30]
        }
        const db = firebase.firestore();
        db.settings({timestampsInSnapshots:true});
        db.collection('USERS').add({
            ...userData, ...defaults,
            fsTimestamp: firebase.firestore.Timestamp.now()
        })
        .then(()=>{
            console.log("User recorded.");
                //this.clearState();
        })
        .catch((error)=>{console.log(error)});
     }

Вот мой импорт:

import * as firebase from 'firebase';
import 'firebase/firestore';
import {LoginManager,LoginButton,AccessToken,GraphRequest,GraphRequestManager} from 'react-native-fbsdk';

1 Ответ

10 голосов
/ 05 апреля 2019

Я нашел это. Проблема была не в коде. Это было что-то очень фундаментальное :) Дело в том, что я не включил провайдера входа в Facebook в разделе провайдеров входа на стороне Firebase. Вам следует включить этот метод аутентификации, если вы видите ту же проблему.

sign-in providers screen

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...