Javascript Firebase函数返回

Javascript Firebase函数返回,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我有一个函数来获取图像的链接。我想在单击标记时显示图像以及其他详细信息。问题是函数返回未定义的值 表结构: 报表文件//表名 -M27OTpU_Be6D8gPQujA//id 158390088597:“ 158390088685:“ //这是我调用所有函数的地方 contentString=''+ ret(ids)+''; //返回图像的url。我想在单击标记时显示它 功能ret(ids){ var-pic; var rootRef=firebase.database().ref().chil

我有一个函数来获取图像的链接。我想在单击标记时显示图像以及其他详细信息。问题是函数返回未定义的值

表结构:

报表文件//表名

-M27OTpU_Be6D8gPQujA//id

158390088597:“

158390088685:“

//这是我调用所有函数的地方
contentString=''+
ret(ids)+'';
//返回图像的url。我想在单击标记时显示它
功能ret(ids){
var-pic;
var rootRef=firebase.database().ref().child(“报告文件/”
+ID)
rootRef.one('value')。然后(函数(childs){
childs.forEach(函数(子函数){
pic+='';
返回pic;
});
});
}
尝试以下操作:

function ret(ids) {
return new Promise((resolve, reject) => {
var pic;
var rootRef = firebase.database().ref().child("Report Files/" + ids)
rootRef.once('value').then(function(childs) {
childs.forEach(function (child) {
pic += '<img src="' + child.val() + '" style="display: 
block;width:200px;margin-left:auto;margin-right:auto;height="200">';
resolve(pic);
         });
       });
     });
    }
  contentString = '<div class="info-window-content">' + 
 ret(ids).then((result)=>{result}) + '</div>';
then()
方法最多使用两个参数:用于Promise成功和失败案例的回调函数

查看此处了解更多信息:

尝试以下操作:

function ret(ids) {
return new Promise((resolve, reject) => {
var pic;
var rootRef = firebase.database().ref().child("Report Files/" + ids)
rootRef.once('value').then(function(childs) {
childs.forEach(function (child) {
pic += '<img src="' + child.val() + '" style="display: 
block;width:200px;margin-left:auto;margin-right:auto;height="200">';
resolve(pic);
         });
       });
     });
    }
  contentString = '<div class="info-window-content">' + 
 ret(ids).then((result)=>{result}) + '</div>';
then()
方法最多使用两个参数:用于Promise成功和失败案例的回调函数

查看此处了解更多信息:


如果您要添加您的数据库,请添加
pic+='';控制台日志(pic)你得到了什么?我得到了图片的url你试过答案了吗?我试过了如果你做了
pic+='',它会返回[object Promise]添加你的数据库;控制台日志(pic)你得到了什么?我得到了图像的url你试过答案了吗?我试过了它返回[object Promise]它返回[object Promise]你需要添加
ret(id)。然后((result)=>{result})
在创建
之前,然后你检索数据并将其分配给变量,你可以在
contentString
中使用该变量[对象承诺]您需要添加
ret(id)。然后((result)=>{result})
在创建
之前,然后您检索数据并将其分配给变量,您可以在
contentString
中使用该变量