我正在构建连接到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身份验证页面中启用了电子邮件/密码登录]
答案 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.authWithCustomToken
,Firebase.authWithPassword
,{{ 1}}和其他(它们不在firebase.authAnonimously
类中)...
因此,要创建一个用户,有两个具有相同方法的类,
FirebaseAuth
(无法正常工作)和Firebase.createUser
(可正常工作)。
我相信jvm库中存在一个错误,用于验证用户身份的方法不在类FirebaseAuth.createUser
中,而是在FirebaseAuth
类中。