Firebase身份验证不适用于Java(jvm)(桌面)

时间:2019-01-29 16:22:01

标签: java firebase javafx firebase-authentication

我正在构建连接到Firebase的桌面软件(Java)。

我可以使用该软件完美地创建用户(它在Firebase Project用户页面上完全按照创建的方式显示),但是当我尝试对该用户进行身份验证(使用相同的软件)时,我从服务器收到错误消息。 / p>

无论我如何尝试登录(我正在使用Firebase.authWithPassword和Firebase.authWithCustomToken),但两者都不起作用。

我看过很多使用Web或Android的视频和教程示例(非常容易做到),但是没有使用Java jvm的视频和教程示例,甚至在Firebase Docs中也没有(他们有Android和Web示例,但是在Java中没有)。不知道我是否做对了。我正在关注文档,但无法正常工作。

有什么想法吗?

String customToken =     FirebaseAuth.getInstance().createCustomToken(uid);
System.out.println("CUSTOM TOKEN >> " + customToken);

Firebase firebase = new Firebase(projectURL);

//firebase.authWithCustomToken(customToken, authResultHandler);
firebase.authWithPassword(userMail, userPass, authResultHandler);
  
    

使用CustomToken(firebase.authWithCustomToken(customToken,authResultHandler))(我正在使用使用创建用户时指定的UID创建的自定义令牌(使用FirebaseAuth.getInstance()。createCustomToken(uid))< / p>   

AUTH ERROR-> FirebaseError:应为ID令牌,但已获得自定义令牌。

验证错误-> -7

  
    

使用电子邮件/密码身份验证(firebase.authWithPassword(userMail,userPass,authResultHandler),我收到此错误:

  

AUTH ERROR-> FirebaseError:验证时出错。

AUTH ERROR-> -999

[PS。在Firebase身份验证页面中启用了电子邮件/密码登录]

1 个答案:

答案 0 :(得分:0)

我想我知道发生了什么事。

我正在使用Java(jvm)构建此桌面界面,用于创建用户并登录他们。

我正在使用的lib是firebase-admin-6.7.0.jar.

我注意到在其他库中(例如,对于android,js),用于验证用户身份的方法位于FIREBASE.AUTH(或类似名称)中...

在Java(jvm)库中,有一个类FIREBASEAUTH(其方法与其他库中的FIREBASE.AUTH非常相似),但是没有类似SIGNINWITHCUSTOMTOKEN或内的SIGNINWITHEMAIL(与其他语言库中的firebase.auth一样)

FirebaseAuth (jvm)确实具有创建用户的方法,但是没有用于验证用户身份的方法(如其他语言中的类似库)

我发现的唯一用于验证用户身份的方法位于类FIREBASE中,该类具有Firebase.createUser之类的方法以及诸如Firebase.authWithCustomTokenFirebase.authWithPassword,{{ 1}}和其他(它们不在firebase.authAnonimously类中)...

因此,要创建一个用户,有两个具有相同方法的类, FirebaseAuth(无法正常工作)和Firebase.createUser(可正常工作)。

我相信jvm库中存在一个错误,用于验证用户身份的方法不在类FirebaseAuth.createUser中,而是在FirebaseAuth类中。