首页 > 解决方案 > FireBase 实时数据库

问题描述

我在 Android 应用程序中使用 Firebase 数据库,每次用户使用 singUp 时,我都会为此目的在数据库中存储一些值,我正在执行以下操作:

@Override
public void writeObject(IUser object) {
    User usrReal = (User) object ; // this userReal's reference same with parameter
    User usrCopy = new User(usrReal); // copy of it
    String usrId = usrCopy.getUserId();

    databaseReference.child("usrId").setValue(usrCopy);
    //databaseReference = this.databaseReference  = FirebaseDatabase.getInstance().getReference().child(path) is defined beginning of the class
}

正如您在子方法中看到的,如果称为“usrId”,它会创建 usrId 目录并在其中添加所有必需的信息。但是我想为每个用户创建目录,所以我尝试将 usrId 变量作为参数传递。但是它不起作用。当我调试代码调试器时说 Local var usrId 无法识别。我的问题是如何在 Firebase wrt 中创建嵌套结构。用户 ID。

标签: androidfirebasefirebase-realtime-database

解决方案


如果userId是firebase身份验证生成的id,那么你可以这样做:

String userId = user.getUid();
this.databaseReference  = FirebaseDatabase.getInstance().getReference().child("Users");
this.databaseReference.child(userId).child("name").setValue("peter");

然后你将拥有这样的结构:

Users
  userId 
    name : peter
  userId1
    name : john

推荐阅读