Я пытаюсь вызвать следующую функцию. Я пробовал await и Promise.all (), но я все еще вижу, что выполнение моих функций firebase завершено до возвращения запроса get. Код в конце концов завершается, но из-за того, как работает firebase, это занимает 2 или 3 минуты, потому что firebase запускает его как некую фоновую задачу.
Я разместил логирование на каждой строке выполняемой функции. Когда он попадает на линию, которая вызывает (request.get), firebase останавливается и выходит. Я также попытался добавить здесь await, но код не блокирует и не ждет.
function fetchUserLogoBase64(userId) {
return new Promise(async function(resolve, reject) {
const userSettings = await getDocument("user-settings", userId);
const downloadUrl = userSettings.company.logoDownloadUrl;
if (!downloadUrl) return null;
request.get(downloadUrl, function(error, response, body) {
if (!error && response.statusCode === 200) {
data =
"data:" +
response.headers["content-type"] +
";base64," +
new Buffer(body).toString("base64");
resolve(data);
}
reject(error);
});
});
}