Firebase signInWithCustomToken不起作用

时间:2018-11-30 18:23:21

标签: android firebase firebase-authentication

我正在尝试使用Firebase通过我生成的自定义令牌对用户进行身份验证

FirebaseAuth.getInstance().signInWithCustomToken(token).addOnCanceledListener(new OnCanceledListener() {
                @Override
                public void onCanceled() {
                    System.out.println("canceled");
                }
            }).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    System.out.println("failure");
                }
            }).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                        System.out.println("complete");
}});

令牌是我从服务器获得的有效身份验证令牌
WorkerThread

上调用此方法

但控制台上未打印任何消息

可能会发生什么?

===========更新=========
经过测试,它在API lvl 27上运行良好
但在API 16上不起作用
根据Firebase页面,fibase至少需要api 9

1 个答案:

答案 0 :(得分:0)

一些想法:

  1. 确保您具有有效的令牌。您可以将其粘贴到https://jwt.io/中,并将其与有效令牌进行比较,或者按照here所述检查所需的元素。令牌必须使用您尝试连接的同一Firebase项目的私钥进行签名。您可以从Firebase控制台/项目设置/服务帐户获取私钥
  2. 在OnFailureListener中,打印出异常消息,例如e.getMessage()。
    addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
          Log.d(TAG, e.getMessage());
        }