Возврат из Firebase - PullRequest
       3

Возврат из Firebase

1 голос
/ 12 марта 2020

У меня есть функция, чтобы получить ссылку на изображения. Я хочу показать изображения, когда я нажимаю на маркер вместе с дополнительной информацией. Проблема в том, что функция возвращает неопределенное значение.

Структура таблицы:

Файлы отчетов // Имя таблицы

-M27OTpU_Be6D8gPQujA // id

1583910088597: "https://firebasestorage.googleapis.com/v0/b/lto "

1583910088685:" https://firebasestorage.googleapis.com/v0/b/lto "

  //this is where i all the function
  contentString = '<div class="info-window-content">' + 
 ret(ids) + '</div>';

//returns the url of the images. I want show it when i click the marker
function ret(ids) {
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">';
return pic;
    });
    });
      }

1 Ответ

0 голосов
/ 12 марта 2020

Попробуйте сделать следующее:

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);
         });
       });
     });
    }

Вернуть promise из функции ret, используйте resolve(pic), чтобы вернуть значение pic, когда promise закончится. Затем, чтобы получить значение pic, вы можете сделать следующее:

  contentString = '<div class="info-window-content">' + 
 ret(ids).then((result)=>{result}) + '</div>';

Метод then() принимает до двух аргументов: функции обратного вызова для случаев успеха и ошибок Promise.

Проверьте здесь для получения дополнительной информации:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...