我正在使用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>
我不知道是什么导致了这些问题,但是我认为这与字符串名称有关,如果有人可以帮助我,我将非常感谢。谢谢!
答案 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提供的字符串添加到了您的字符串资源,就可以解决问题。