Android Facebook登录Firebase无效的哈希密钥

时间:2018-05-24 06:17:30

标签: android firebase firebase-authentication facebook-login

所以最近我尝试使用Facebook登录登录我的Android应用程序。我按照所有说明(生成密钥,将其放在Facebook上等等),但即使在我完成所有步骤后,我仍然无法登录。

我遇到两个问题:

  1. " Facebook登录来自Facebook"的不成功的debug_token响应 enter image description here
  2. "尝试使用Facebook登录时无效的哈希密钥" - 一个。从Android工作室安装的应用程序。湾从Play商店安装的应用程序。 enter image description here

2 个答案:

答案 0 :(得分:5)

经过大量研究后我找到了解决方案:

  1. 因为在搜索期间有人建议从Facebook删除我的应用并再次重新创建,Facebook上的AppID和AppSecret已更改,我没有相应地更新Firebase控制台。 enter image description here
  2. 一个。我使用下一个代码生成密钥:

    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                    "com.example.somepackage",
                    PackageManager.GET_SIGNATURES);for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (PackageManager.NameNotFoundException e) {
    
    } catch (NoSuchAlgorithmException e) {
    
    }
    

    我去了logcat,复制了生成的密钥并将其插入到Facebook应用程序中 enter image description here 在此之后,我可以在调试我的应用程序时登录。

    湾在Play商店上传应用程序后,我惊讶地发现我无法使用Facebook登录!要解决这个问题,我找到了下一个解 转到Firebase - >项目设置复制您拥有的每个SHA指纹,将其粘贴到Convert Hexadecimal to base64,从base64行获取结果并将其添加到Facebook(除了来自" 2.a。"的键) 。enter image description here enter image description here enter image description here

答案 1 :(得分:0)

当我为Facebook集成firbase Auth.UI时,发生了同样的事情。 由于某些原因,密钥生成的输出与实际生成的密钥不匹配。 这是针对Linux用户和开发环境的 光盘进入app-debug.apk以cd /buil/outputs/apk/debug 输入keytool -list -printcert -jarfile .app-debug.apk

您将被提示 Certificate fingerprints: MD5: xx:xx:xx....... SHA1: xx:xx:xx....... SHA@56: xx:xx:xx.......

复制SHA1值并将其更改为base64(您可以使用任何工具),您将获得正确的键哈希值,该哈希值将添加到Facebook应用程序设置的键哈希值中。