Обещание Firebase возвращает ноль пользователю, но возвращает нормальные данные при тестировании облачных функций - PullRequest
0 голосов
/ 09 января 2020

Функция продолжает возвращать ноль на стороне пользователя. Всякий раз, когда я тестирую функцию в Cloud Platform, она возвращает и отображает (через журналы) правильные данные. У меня есть другая функция на стороне сервера, которая буквально такая же, но она возвращает все правильно. У кого-нибудь есть какие-нибудь подсказки?

На стороне сервера:

exports.getTeam = functions.https.onCall(async function(data, context) {
    return new Promise(async resolve => {
        let sport = data.sport;
        let year = data.year;
        let teamId = Number(data.id);

        MongoClient.connect(uri, { useUnifiedTopology: true }, async function(err, db) {
            if(err) console.log("Error connecting to DB");
            else
            {
                db.db(sport + year).collection('Teams')
                .find({id: teamId})
                .toArray(function(err, teams) {
                    db.close();
                    resolve(teams[0]); 
                });
            }
        })
    })
});

На стороне пользователя:

let getTeam = functions.httpsCallable('getTeam');
await getTeam({"sport":teamSport, "year": teamYear, 'teamId':teamId})
.then(async function(teamInfo) {
    console.log(teamInfo);
    if(teamInfo.data)
    {
        let team = teamInfo.data;
        console.log(team);
    }
    else console.log('Returned null');
})

1 Ответ

0 голосов
/ 09 января 2020

Очень глупая ошибка: я отправлял teamId с именем teamId, но на стороне сервера я получал идентификатор (который был нулевым из-за того, что он был отправлен как teamId со стороны пользователя)

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