未找到身份提供程序配置 - 使用 FacebookAuthProvider 反应本机 Firebase 身份验证

Posted

技术标签:

【中文标题】未找到身份提供程序配置 - 使用 FacebookAuthProvider 反应本机 Firebase 身份验证【英文标题】:The identity provider configuration is not found - React Native Firebase Authentication with FacebookAuthProvider 【发布时间】:2019-08-26 14:31:12 【问题描述】:

找不到身份提供者配置

当我尝试使用 FacebookAuthProvider 对 Firebase 进行身份验证时出现此错误。我正在使用 react-native-fbsdk 与 react-native 进行 facebook 身份验证集成。我的目标是使用身份验证令牌登录用户 ti firebase,并将用户数据记录在 firestore 内的 USERS 集合中。

下面是我的代码。任何帮助表示赞赏!

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】:

我找到了。问题不在于代码。这实际上是非常基本的东西:) 问题是我没有在 firebase 端的登录提供程序部分启用 facebook sign-n 提供程序。如果您遇到同样的问题,您应该启用此身份验证方法。

【讨论】:

如果您的配置未完成或至少发生在我身上,似乎 firebase 会禁用它...

以上是关于未找到身份提供程序配置 - 使用 FacebookAuthProvider 反应本机 Firebase 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

用户对 facebook 进行身份验证后未调用应用程序打开 Url 方法

Facebook SDK错误'必需'app_id“密钥未在配置中提供

未找到具有有效签名身份的 Provisiong 配置文件,并且无法找到或生成匹配的签名资产

本地主机上的 Firebase Facebook 身份验证

英特尔 XDK - 协同设计 - 未找到身份 - AdHoc - 分发配置文件

Phonegap iOS 证书