我具有以下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);
});
答案 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);
});
});