我怎样才能将数据放在火力库中的孩子之外,我遇到的问题看起来像这样

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&lt;String, Object&gt; postValues = post.toMap(); 显示无法解析符号post,我将帖子更改为我要发送的数据? 但是当我尝试更改为 DataNasabah 时,toMap() 说无法解析 datanasabah 中的 tomap 当我尝试在 DataNasabah 中创建看起来像这样的方法时 `public Map toMap() return null; ` 我尝试调试它,如果在 firebase 中显示一秒钟并自行删除

以上是关于我怎样才能将数据放在火力库中的孩子之外,我遇到的问题看起来像这样的主要内容,如果未能解决你的问题,请参考以下文章

使用终端表,我怎样才能将所有数据放在一个表中,而不是拆分到多个表中?

Roblox:我怎样才能让这个脚本正常工作?

Prisma:我怎样才能让所有孩子都处于某种状态?

如何获得具有特定属性的特定孩子..这是我的火力基地

我怎样才能访问放在 WEB-INF 文件夹中的文件

将Bar Button放在导航栏上时出现问题