android - Firebase 实时数据库数据自动被删除
问题描述
我所指的问题的图像:
我正在尝试创建一个教育应用程序,用户可以在其中创建教室,并可以为学生分配作业、家庭作业和视频讲座等工作。我使用 Firebase 实时数据库作为 BAAS。到目前为止一切正常,当我创建一个教室,即在“教室”节点下的节点上设置一个值时,整个数据库中的数据被删除,然后在主数据库下创建一个名为“教室”的新节点,然后Classroom 对象的值在那里设置。自 3 天以来,我一直在对此进行故障排除,在堆栈溢出方面看到了类似的问题,但大多数问题都没有答案,我尝试了那些有答案的问题的答案,但它们没有用。请帮助我,由于这个问题,我被卡住了,无法发布我的应用程序供公众使用。
为了帮助调试,这是我正在使用的一些代码:
createClassroom.setOnClickListener(v -> {
String proposedName = className.getText().toString();
if (proposedName.equals("")) {
//some checks for ensuring proposed name is a valid classroom name
} else {
// Some code which sets the values of Classroom Object (setters)
FirebaseDatabase.getInstance()
.getReference()
.child("Classrooms")
.child(classroom.getId())
.setValue(classroom.toMap())
.addOnSuccessListener(aVoid -> {
updateUserInDb())
.addOnFailureListener(e -> Toast.makeText(context, "Failed Due To " + e.getMessage(), Toast.LENGTH_LONG).show());
}
});
}
我也尝试过使用 FirebaseDatabase.getInstance().getReference("Classrooms")... 方法,但它没有改变任何东西。
此外,这里是 updateUserInDb() 方法:
private void updateUserInDb() {
String user_id = DataFlowGlobals.user.getId();
FirebaseDatabase.getInstance()
.getReference()
.child("Users")
.child(user_id)
.child("cre")
.child(classroom.getId())
.setValue(classroom.getId())
.addOnSuccessListener(aVoid -> Toast.makeText(context, "Classroom Created Successfully........", Toast.LENGTH_SHORT).show())
.addOnFailureListener(e -> Toast.makeText(context, "Failed due to " + e.getMessage(), Toast.LENGTH_SHORT).show());
finish();
}
请尽快提供帮助,提前感谢您的帮助!
编辑 1:我添加了我遇到的问题的图像。
解决方案
是的。您必须先获取数据库的引用,然后才能在子节点上执行任何选项。像打击
FirebaseDatabase.getInstance()
.getReference("Classrooms")
.child(classroom.getId())
.setValue(classroom.toMap())
.addOnSuccessListener(aVoid -> {
updateUserInDb())
.addOnFailureListener(e -> Toast.makeText(context, "Failed Due To " + e.getMessage(), Toast.LENGTH_LONG).show());
我希望这将帮助您解决您的问题。
快乐的编码...
推荐阅读
- python - 在 Python 中确定函数的参数数量
- java - 如何更改按下的 JLabel 的图标
- r - 这个 for 循环不起作用,当我试图给出值时它没有产生输出
- graph-theory - TSP:在距离约束下最大化利润
- flutter - Flutter AnimatedContainer / AnimatedOpacity 延迟动画
- r - 在R中按日期和时间对数据进行排序
- c - 如何对超过 10 位的数字求和?
- google-cloud-platform - GCSFuse 提供范围未授权错误
- java - 如何在java中找到第二个最常见的字符?
- python - 如何在水平条形图中设置条形之间的距离