Firebase由孩子的孩子进行搜索和更新

时间:2018-08-14 13:06:07

标签: javascript json firebase firebase-realtime-database

我具有以下Firebase数据库结构:

-files
  |-LJsSTIfXcyzZy9N8RDV
     |-fileURL:"uploads/myfile.png"
  |-LJsSTIfXcyzxy9N8PqT
     |-fileURL:"uploads/myfile2.png"

现在,我想仅使用fileURL的值来添加fileURL的同级。 因此,我尝试使用值'uploads/myfile.png'实现以下目标:

-files
  |-LJsSTIfXcyzZy9N8RDV
     |-fileURL:"uploads/myfile.png"
     |-fileThumbURL:"uploads/myfileThumb.png"
  |-LJsSTIfXcyzxy9N8PqT
     |-fileURL:"uploads/myfile2.png"

我尝试了以下操作,但没有用。

fileURL = "uploads/myfile.png";
thumbURL = "uploads/myfileThumb.png";
admin.database().ref().child('files').orderByChild("fileURL").equalTo(fileURL ).once('value',function(snapshot){
            return snapshot.ref.child('fileThumbURL').set(thumbURL);
        });

1 个答案:

答案 0 :(得分:1)

对Firebase数据库执行查询时,可能会有多个结果。因此,快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。

您的代码需要处理此列表,通常使用snapshot.forEach()遍历结果。例如:

admin.database().ref().child('files').orderByChild("fileURL").equalTo(fileURL ).once('value',function(snapshot){
  snapshot.forEach(function(fileSnapshot) {
    fileSnapshot.child('fileThumbURL').set(thumbURL);
  });
});