Facebook提供商未配置。确保添加`facebook_application_id`字符串

时间:2018-08-03 05:35:47

标签: android firebase firebase-authentication facebook-login firebaseui

我正在使用Firebase UI登录并尝试在我的android应用中实现Facebook登录。启动firebase ui活动时,我得到:

“ java.lang.IllegalStateException:”未配置Facebook提供程序。请确保添加facebook_application_id字符串”

在我的字符串资源中,我添加了它,它是这样的: 顺便说一下,在Firebase文档中,字符串名称与facebook文档中的字符串名称不同,这就是它们在facebook文档中的外观,也称为快速入门:

`<string name="facebook_app_id" translatable="false">SOMECODE</string>
<string name="fb_login_protocol_scheme" 
translatable="false">SOMECODE</string>`

这是Firebase文档中的外观:

 <string name="facebook_application_id" 
 translatable="false">YOUR_APP_ID</string>

<string name="facebook_login_protocol_scheme" 
translatable="false">fbYOUR_APP_ID</string>

我也遇到了一些合并问题,并通过向元数据中添加tools:replace="android:value"来解决它,并且是的,所有内容都添加到了应用程序标记中

<meta-data android:name="com.facebook.sdk.ApplicationId"
        tools:replace="android:value"
        android:value="@string/facebook_app_id"
        />

    <activity android:name="com.facebook.FacebookActivity"
        android:configChanges=
            "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:label="@string/app_name" />
    <activity
        android:name="com.facebook.CustomTabActivity"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="@string/fb_login_protocol_scheme" />
        </intent-filter>
    </activity>

我不知道是什么导致了这些问题,但是我认为这与字符串名称有关,如果有人可以帮助我,我将非常感谢。谢谢!

3 个答案:

答案 0 :(得分:2)

按照here所述,在清单中添加Facebook Provider。

将您的应用ID附加到授权值的末尾。例如,如果您的Facebook应用ID为1234,则声明如下所示:

<provider android:authorities="com.facebook.app.FacebookContentProvider1234"
          android:name="com.facebook.FacebookContentProvider"
          android:exported="true" />

答案 1 :(得分:1)

使用的是AndroidManifest.xml

<meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/FACEBOOK_FB_APP_ID" />

和在strings.xml中

    <string name="FACEBOOK_FB_APP_ID">{application id}</string>

答案 2 :(得分:0)

好吧,我当时以为firebase提供的字符串和facebook提供的字符串相同,而我只需要一对,事实是它们是不同的,并将firebase和facebook提供的字符串添加到了您的字符串资源,就可以解决问题。