由于我将Firebase应用升级到了新的控制台(仅限于),Facebooklogin不起作用,

我使用了Facebook和电子邮件loginfunction,因为我升级了Firebase控制台(只有sdk没有更新)。

Firebase 3.0之前的应用程序版本正在运行之前,但是在控制台升级之后,它不再能够在Facebook上login/login。

我做了什么:

1 – 升级了Firebase控制台

由于Firebase和Facebook控制台更新,我还必须将Oauth Callback放到Facebook应用程序中

2 – 将Firebase Facebook OAuthcallback粘贴到Facebook控制台(无效之前)` https: //xxx.firebaseapp.com/__/auth/handler“

例外:

Firebase Auth侦听器会触发Firebase错误:

提供的validation凭证无效。 和Facebook:{“providerErrorInfo”:{“code”:400,“message”:“来自Facebook的不成功的debug_token回复:{\”error \“:{\”message \“:\”(#100)应用程序访问令牌或作为应用程序所有者或开发者的用户访问令牌“,”type“:\”OAuthException \“,\”code \“:100,\”fbtrace_id \“:\”DG4lLRJHFBS \ “}}”}}

FirebaseError代码:

在FirebaseAndroidSdk的反编译代码中,错误对象是:

0 = {java.util.LinkedHashMap$LinkedEntry@22680}“code” – >“INVALID_CREDENTIALS”

1 = {java.util.LinkedHashMap$LinkedEntry@22681}“message” – >“提供了无效的authentication凭证。

2 = {java.util.LinkedHashMap$LinkedEntry@22682}“details” – >“{”providerErrorInfo“:{”code“:400,”message“:”来自Facebook的不成功的debug_token响应:{\“error \”: \“message \”:\“(#100)您必须提供应用程序访问令牌或应用程序的所有者或开发者的用户访问令牌,”\“type \”:\“OAuthException \”,\“代码\ “:100,\” fbtrace_id \ “:\” BtB3JF2qmku \ “}}”}}”

与反编译的代码:

private void makeAuthenticationRequest(String urlPath, Map<String, String> params, AuthResultHandler handler) { final AuthenticationManager.AuthAttempt attempt = this.newAuthAttempt(handler); this.makeRequest(urlPath, HttpRequestType.GET, params, Collections.emptyMap(), new RequestHandler() { public void onResult(Map<String, Object> result) { Object errorResponse = result.get("error"); String token = (String)Utilities.getOrNull(result, "token", String.class); if(errorResponse == null && token != null) { if(!AuthenticationManager.this.attemptHasBeenPreempted(attempt)) { AuthenticationManager.this.authWithCredential(token, result, attempt); } } else { FirebaseError error = AuthenticationManager.this.decodeErrorResponse(errorResponse); AuthenticationManager.this.fireAuthErrorIfNotPreempted(error, attempt); } } public void onError(IOException e) { FirebaseError error = new FirebaseError(-24, "There was an exception while connecting to the authentication server: " + e.getLocalizedMessage()); AuthenticationManager.this.fireAuthErrorIfNotPreempted(error, attempt); } }); } 

在AuthListener级别,firebaseError代码: -20

https://www.firebase.com/docs/java-api/javadoc/com/firebase/client/FirebaseError.html

指定的authentication凭证无效。

Facebook错误代码:

代码400

在这里找不到相关内容: https : //developers.facebook.com/docs/graph-api/using-graph-api/#errors

Authing的代码:

  public void authWithFirebase(final String provider, Map<String, String> options) { if (options.containsKey(AUTH_OPTIONS_ERROR)) { EventBus.getDefault().post(new MessageToDisplayEvent(options.get(AUTH_OPTIONS_ERROR), true)); } else { if (provider.equalsIgnoreCase(AUTH_PROVIDER_TWITTER)) { // if the provider is twitter, we must pass in additional options, so use the options endpoint ref.authWithOAuthToken(provider, options, new AuthResultHandler(provider)); } else { // if the provider is not twitter, we just need to pass in the oauth_token ref.authWithOAuthToken(provider, options.get(AUTH_OPTIONS_TOKEN), new AuthResultHandler(provider)); } } } 

TOKEN有效期:

从上面的代码,令牌被证实是有效的,因为:

https://graph.facebook.com/app?access_token=%7Byour_access_token%7D返回一个有效的JSON

Facebook工具AccessToken https://developers.facebook.com/tools/debug/accesstoken返回一个仍然有效的TOKEN

从用户的angular度来看什么改变了:

现在,当我点击FacebookLoginButton,我有一个新的对话框要求“连接为%FacebookUserName”,2个button(“Unconnect”和“取消”)

我在Firebase上发布了一个错误报告,但是我甚至不知道这是Facebook还是Firebase,欢迎提供任何帮助,build议您探索新问题表面或解决scheme。

在Facebook开发者控制台中,closures“集成在客户端中的应用程序密钥”的选项。

对我而言,这改变了行为。 我将从Firebase / Facebook获得更多信息

这是一个法语截图帮助你设置Facebook:

在这里输入图像说明