Firebase 更新存储子名称和数据库子名称

Firebase 更新存储子名称和数据库子名称,firebase,firebase-realtime-database,dart,flutter,firebase-storage,Firebase,Firebase Realtime Database,Dart,Flutter,Firebase Storage,我有一个这样的结构: { AllUsers: { 76f4bd92-1fcd-4b4d-86c5-66b7e2822def: { Users Username: { //change the name here -LCdF2QJ5c46lRnndtmY: { count: 1, dateTime: 1526479204163,

我有一个这样的结构:

{
  AllUsers: {

      76f4bd92-1fcd-4b4d-86c5-66b7e2822def: { 

            Users Username: { //change the name here

                -LCdF2QJ5c46lRnndtmY: { 
                    count: 1,
                    dateTime: 1526479204163,
                    name: "picture1",
                    url: "https://firebasestorage.googleapis.com/",
                },
                -LCdF2QJ5c46lRnndtmQ: {
                    count: 2,
                    dateTime: 1526479204163,
                    name: "picture2",
                    url: "https://firebasestorage.googleapis.com/",
                }
            }
      }
  }
}
我的firebase存储和数据库基本上是一样的,我试图允许用户更改那里的用户名,并在此处显示
Users username

我尝试了一些类似的方法:

final StorageReference storageReference = FirebaseStorage.instance.ref().child("AllUsers").child(uuid);
final DatabaseReference dataBaseReference = FirebaseDatabase.instance.reference().child("AllUsers").child(uuid).child(currentName);

storageReference.child(newName);
dataBaseReference.equalTo(newName);

但它没有更新。有人能帮忙吗,我觉得我错过了一些重要的东西,哈哈。

从添加错误处理开始。您应该在调用结束时包含一个.catch(),以确定失败的原因。请注意,这里的安全规则对于确定可能的原因也至关重要。您还没有指出哪个操作失败。此外,对.child()和.equalTo()的调用也没有任何作用。不清楚为什么会在这里包含这些内容,或者对它们的期望是什么。嗨,谢谢你的评论,我只是不确定如何更新基本上是路径/目录的值,所以我不太明白从哪里开始,捕获显然是一个好地方。谢谢,请尝试一下:)据我所知,equalTo()方法不用于更新Firebase中的值。您应该通过将ValueEventListener添加到数据库引用并在其中使用setValue()方法来找到更新的位置。您不能更改firebase中的键。你必须将你的数据移动/复制到一个新的密钥(用户名)并删除旧的密钥。我很快意识到这一点@AndréKool,并且已经这样做了,谢谢你,如果你需要这样做,这可能是一个危险信号lol