java - 有没有办法保存android应用程序的当前用户状态
问题描述
在我的应用程序中,我有两个登录按钮,一个用于教师另一个用于学生,两个登录重定向到添加了 firebase google 登录的活动,我想区分用户从哪个登录登录到应用程序。我需要你的帮助。
尝试1:我使用了一个额外的变量状态,它传递用户并使用意图传递它,并在检查来自意图的数据后加载欢迎屏幕。但在这种情况下,重新启动应用程序后变量为空,因为它直接进入欢迎活动,而不是从登录屏幕。
尝试2:我使用firestore存储变量状态并在重新启动时检索,但它从数据库中检索null,但在Firebase控制台中数据在那里。task.getResult() 产生一个空指针异常。
获取 for 循环条件中 task.getResult() 中发生 NullPointerException 的数据库
FirebaseFirestore db = FirebaseFirestore.getInstance();
db.collection("UserState")
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
Log.d("ONSUCCESS", "Query Document Snapshot fetched successfully");
if (user != null) {
user = document.get("USER").toString();
}
}
} else {
Log.w(TAG, "Error getting documents.", task.getException());
}
}
});
我的 FireStore 数据库结构 FireStore 数据库结构
解决方案
推荐阅读
- c++ - 模拟命令行输入
- r - R 使用 if else 语句将“空白”或“缺失”参数传递给包函数
- python - Matplotlib:仅在 Axes3D 中显示 XY 窗格
- tensorflow - 使用 LSTM 制作新闻类别分类器
- latex - 修改投影仪的框架标题模板以仅更改标题页的头/脚文本颜色
- docker - docker-compose 翻译成 kubernetes
- python - 安装 Django-Admin 时出错(正在运行 setup.py install for screen ... 错误)
- python - PYSPARK 中的 Pivot 和 Cumcount
- python - 有没有办法我们可以将 json 输出转换为 python 代码,任何可用的在线工具?
- extjs6-classic - 自定义字体未应用于 ExtJs 中 html 编辑器中的文本