我怎样才能将数据放在火力库中的孩子之外,我遇到的问题看起来像这样
Posted
技术标签:
【中文标题】我怎样才能将数据放在火力库中的孩子之外,我遇到的问题看起来像这样【英文标题】:How can i put data outside of child in firebase, i having problem look like this 【发布时间】:2022-01-10 11:49:21 【问题描述】:我有一个类似这样的代码,用于在实时 Firebase 中上传数据
这是实时数据库,如下所示:
reference.child("Pending").child(currentDateandTime).child("DataKerja").setValue(tempatKerja);
reference.child("Pending").child(currentDateandTime).child("Alamat").setValue(alamat);
reference.child("Pending").child(currentDateandTime).child("AlamatKtp").setValue(alamatKtp);
reference.child("Pending").child(currentDateandTime).child("Nokontak1").setValue(noKontak1);
reference.child("Pending").child(currentDateandTime).child("Nokontak2").setValue(noKontak2);
reference.child("Pending").child(currentDateandTime).child("KTP").setValue(imageKTP);
reference.child("Pending").child(currentDateandTime).child("Pendukung").setValue(image2);
reference.child("Pending").child(currentDateandTime).child("DataPendukung").setValue (dataNasabah);
我想删除上传 1 个看起来像这样的孩子之外的数据
So the last .child("DataPelanggan")is gone
当我尝试将其删除时
reference.child("Pending").child(currentDateandTime).child("DataKerja").setValue(tempatKerja);
reference.child("Pending").child(currentDateandTime).child("Alamat").setValue(alamat);
reference.child("Pending").child(currentDateandTime).child("AlamatKtp").setValue(alamatKtp);
reference.child("Pending").child(currentDateandTime).child("Nokontak1").setValue(noKontak1);
reference.child("Pending").child(currentDateandTime).child("Nokontak2").setValue(noKontak2);
reference.child("Pending").child(currentDateandTime).child("KTP").setValue(imageKTP);
reference.child("Pending").child(currentDateandTime).child("Pendukung").setValue(image2);
reference.child("Pending").child(currentDateandTime).setValue (dataNasabah);
所有其他文件都消失了,在下面变成了这个
那我该如何解决呢?
【问题讨论】:
请仅使用android-studio
标签来回答有关 Android Studio IDE 本身的问题。对于一般的 Android 编程问题,请使用android
标签。
【参考方案1】:
您的代码完全按照您的编程目的进行。用新的dataNasabah
替换子currentDateandTime
的数据。
现在,为了保留以前的记录并更新/添加新字段,您可以使用updateChildren()
来防止覆盖以前的数据。
要使用它,您需要传递一个 HashMap
,其中包含您要添加的值/字段,而不会影响节点的其他子节点。
来自Firebase docs的示例代码sn-p:
private void writeNewPost(String userId, String username, String title, String body)
// Create new post at /user-posts/$userid/$postid and at
// /posts/$postid simultaneously
String key = mDatabase.child("posts").push().getKey();
Post post = new Post(userId, username, title, body);
Map<String, Object> postValues = post.toMap();
Map<String, Object> childUpdates = new HashMap<>();
childUpdates.put("/posts/" + key, postValues);
childUpdates.put("/user-posts/" + userId + "/" + key, postValues);
mDatabase.updateChildren(childUpdates);
虽然,此代码是同时更新数据库的多个子节点的示例,这就是它在put()
中将子路径作为字符串传递的原因。但是,为了您的使用,您可以将其更改为:
Map<String, Object> postValues = post.toMap();
Map<String, Object> childUpdates = new HashMap<>();
childUpdates.put(currentDateandTime, postValues);
reference.child("Pending").updateChildren(childUpdates);
【讨论】:
这个Map<String, Object> postValues = post.toMap();
显示无法解析符号post
,我将帖子更改为我要发送的数据?
但是当我尝试更改为 DataNasabah 时,toMap() 说无法解析 datanasabah 中的 tomap
当我尝试在 DataNasabah 中创建看起来像这样的方法时 `public Map以上是关于我怎样才能将数据放在火力库中的孩子之外,我遇到的问题看起来像这样的主要内容,如果未能解决你的问题,请参考以下文章