java - API调用后如何与Firebase用户交互?
问题描述
我使用 Retrofit2 执行 API 调用,通过 Firebase 身份验证使用电子邮件和密码登录用户,然后需要以某种方式与用户对象交互,即刷新一些数据或检查用户是否在下次应用程序启动时登录(我得到一个正确的 Json目的)。
但是在 API 调用检查FirebaseAuth
对象mAuth.getCurrentUser()
给出null
并且不知道如何在我的应用程序中保存登录状态之后。
NetworkService.getInstance().getJsonApi()
.loginWithEmail(email, password, true)
.enqueue(new Callback<Transaction.Result>() {
@Override
public void onResponse(Call<Transaction.Result> call, Response<Transaction.Result> response) {
if (response.code() == 200) {
// Sign in success, update UI with the signed-in user's information
Log.d(TAG, "signInWithEmail:success");
FirebaseUser user = mAuth.getCurrentUser();
activity.updateUI(user);
activity.startService();
} else {
Log.d(TAG, "signInWithEmail:failure");
activity.showToast("Authentication failed.");
activity.updateUI(null);
}
activity.hideProgressBar();
}
@Override
public void onFailure(Call<Transaction.Result> call, Throwable t) {
t.printStackTrace();
}
});
如何FirebaseUser
正确检索?
谢谢。
解决方案
如果您使用 Firebase Auth REST API 登录用户,则不能同时使用 Firebase Auth SDK 来管理该登录。您必须坚持使用 REST API 进行所有管理。这意味着您必须跟踪从 API 获得的 ID 令牌,在令牌过期前每小时刷新一次,并保持自己对用户“登录”意味着什么的理解。
我强烈建议只使用提供的 SDK,因为它会自动为您完成所有这些工作。
推荐阅读
- reactjs - the latest data to old data from top. i want scroll position last index of first of load. so from . i can scroll top to see new data. like whatsapp
- python - Python, show output of multiple processes in different parts of the terminal
- java - Improper Restriction of XML External Entity Vulnerability Fix
- javascript - Convert input text to list
- python - Python: shapefile.Reader, how to set up .iloc?
- java - Java Map Adapter 等效于 Python 中使用 wsdl
- python - jinja2.exceptions.TemplateNotFound: index.html for simple hello world program in flask
- asp.net - Visual Studio 2019 can debug one web site but not another on the same server... why?
- node.js - 不获取 req 标头授权令牌
- github - How to identify github user with ssh key?