首页 > 解决方案 > 如何在初始登录时自动将用户添加到 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 节点中,还是我没有正确执行此操作?

标签: androidfirebasefirebase-realtime-databasefirebase-authentication

解决方案


推荐阅读