【问题标题】:How to copy data from one Node in Firebase Realtime database to another Node?如何将数据从 Firebase 实时数据库中的一个节点复制到另一个节点?
【发布时间】:2023-02-18 17:51:46
【问题描述】:

我有一个每日例行应用程序的实时数据库,它有一个通用节点和一个编辑节点,在通用节点中,列出了每个工作日,其中列出了特定日期的所有目标。

一般功能是,假设今天是2022 年 10 月 11 日,星期二我希望将 general>Tuesday 节点中的数据复制到 Edited>11102022 中。如果 11102022 节点不存在,那么我将创建该节点,然后复制数据。

我目前只做这个客户端,这意味着客户端需要对最终产品中的数据库具有写入权限,我不想包括在内。

在阅读了一些关于它可以做什么的文档后,我目前正在考虑云功能。但我对此几乎一无所知,文档和其他视频也没有展示我的解决方案,它们只谈论如何查看传入数据和其他内容。

是否有易于遵循的指南或我应该阅读哪些文档以找到解决方案?对此的任何帮助都将是一个很大的帮助。

客户端复制我正在关注 @Alex Mamo 来自 Moving or copying data from one node to another in firebase database 的回答

This is my Database snapshot

【问题讨论】:

  • 因此,为了更好地理解,您是否需要云函数的代码来将节点内的数据从一个位置复制到另一个位置,就像它执行客户端代码的方式一样?
  • 是的,用户将发送一个请求,并且该函数将复制它,如果它之前没有被任何其他用户复制过的话。
  • 嗨@AlexMamo,我试着搜索这些但没有找到任何有用的东西。你这边有什么更新吗?

标签: android node.js firebase firebase-realtime-database google-cloud-functions


【解决方案1】:

对不起,来晚了, 我不太确定官方代码,但我确实喜欢这样:

    FirebaseDatabase db = FirebaseDatabase.getInstance();
    DatabaseReference ref= db.getRefernce();

    ref.child("tempuser").child(userID).addListenerForSingleValueEvent(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot snapshot) {
                        if(snapshot.exists()) {
                            reference.child("user").child(userID).setValue(snapshot.getValue());
                        }
                    }

                    @Override
                    public void onCancelled(@NonNull DatabaseError error) {

                    }
                });

在这里,我将“userID”数据下的“tempuser”、单个用户节点移动到与单个用户节点具有相同“userID”的永久“用户”节点。

希望能帮助到你 。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 2017-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多