我正在使用Firebase身份验证将用户登录到我的Web应用程序和Android应用程序。
通过Webapp的流程,我可以从客户端登录用户,然后将Firebase令牌传递到我的服务器,并在向数据库中添加各种用户信息之前,先通过Firebase进行验证。
我现在正在为Android尝试相同的操作,但是在获取令牌时遇到了一些问题。 这是登录代码:
// Initialize Firebase Auth
mAuth = FirebaseAuth.getInstance();
// ...
mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener((MainActivity) context, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// ***I want to get the token here***
FirebaseUser fbUser = task.getResult().getUser();
// send user details and token to server
} else {
// If sign in fails, display a message to the user.
}
}
}
});
在其他地方,我看到在Firebase文档中,有this snippet得到了Task<GetTokenResult>
,这是我想要的,但是我似乎无法在{{1}中得到它}方法。
从Firebase文档
createUserWithEmailAndPassword
如何在FirebaseUser mUser = FirebaseAuth.getInstance().getCurrentUser();
mUser.getIdToken(true)
.addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
public void onComplete(@NonNull Task<GetTokenResult> task) {
if (task.isSuccessful()) {
String idToken = task.getResult().getToken();
// Send token to your backend via HTTPS
// ...
} else {
// Handle error -> task.getException();
}
}
});
中获得令牌?
答案 0 :(得分:1)
登录完成后,您可以在第一行中使用第二行代码。
// ***I want to get the token here***
FirebaseUser fbUser = task.getResult().getUser();
fbUser.getIdToken(true)
.addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
// ...
}