android - 如何在初始登录时自动将用户添加到 Firebase 中的现有节点
问题描述
我在我的应用程序中实施了一种解决方法来阻止用户访问,但是,当我尝试在新设备上登录用户时,应用程序崩溃了。
这是我的数据库架构(注意:我尝试登录的用户尚未在 Blocked users 节点上。):
{
"Blocked Users" : {
"RCX2HZXIwlSmMHFgDytf1DgZBgi2" : 0
},
"User Location" : {
"latitude" : 37.4035483,
"longitude" : -122.097715
},
"Users" : {
"RCX2HZXIwlSmMHFgDytf1DgZBgi2" : {
"Alert Level" : "Medium",
"Emergency Type" : "Natural Disaster",
"address" : "Lapaz Tarlac",
"emergencyNum" : "0981232387346",
"name" : "Rafael Campos",
"phoneNum" : "0981233445675"
}
}
}
这就是我检测用户是否被阻止的方式:
private int blockUser;
private void userBlock() {
if(FirebaseAuth.getInstance().getCurrentUser()!=null){
final DatabaseReference blockRef = FirebaseDatabase.getInstance().getReference().child("Blocked Users").child(currentUser.getUid());
blockRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
blockUser = Integer.parseInt(snapshot.getValue().toString());
if (blockUser == 0){
}
else if (blockUser == 1){
Intent mainIntent = new Intent().setClass(Fingerprint.this, BlockedNotice.class);
startActivity(mainIntent);
finish();
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
}
}
有什么方法可以自动将用户添加到 Blocked Users 节点中,还是我没有正确执行此操作?
解决方案
推荐阅读
- mysql - 拥有与节点一样多的 Pod
- flutter - 向 ClipPath 添加背景颜色不起作用
- assembly - RISC-V中保存哪些寄存器,哪些不保存
- mitmproxy - ios 13.7 上的问题
- laravel - 在子域上安装 Laravel 出现 Http 500 错误
- excel - 有没有办法复制带有锚单元格的 Excel 公式并让锚每 n 行更新一次?
- iis - Blazor WASM - IIS 上的独立部署
- sql-server - 使用 SQL OpenRowSet BulkColumn 从 .txt 文件中插入数据
- c# - 无法从程序集“Microsoft.EntityFrameworkCore,版本=5.0.0.0”加载类型“Microsoft.EntityFrameworkCore.Internal.IDatabaseFacadeDependencies”
- python - 编写一个将单词列表作为参数并将每个单词加倍的函数