android - 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。
解决方案
如果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
推荐阅读
- .net - .NET 5 单元测试项目 VS 2019
- lisp - Lisp 基本打印功能获取用户输入
- javascript - 当我尝试在我的 node.js 电子应用程序中调用一个函数时,它会抛出一个错误。点击事件未定义函数
- firebase - 错误:Firestore 已初始化。您只能调用 settings() 一次,并且只能在调用 Firestore 对象上的任何其他方法之前
- java - 无法在 vscode 中使用 tomcat 服务器运行简单的 servlet
- java - 如何将两个不同表单的两个提交并排放在同一行
- javascript - 使用 Promise 进行顺序渲染
- angular - 如何在测试代码覆盖率中覆盖 catchError
- mapping - 如何使用 TestComplete 在桌面测试中刷新子对象
- google-apps-script - 查找文本并将行复制到其他工作表