Функция Firebase Cloud Я хочу изменить все пользовательские данные

#firebase #google-cloud-functions

#firebase #google-cloud-функции

Вопрос:

 exports.scheduledFunctionCrontab = functions.pubsub.schedule('5 20 * * *')
    .timeZone('Asia/Seoul') // Users can choose timezone - default is America/Los_Angeles
    .onRun((context) =>
    {
        var allUsers = [];
        return admin.auth().listUsers()
            .then(function (listUsersResult)
            {
                listUsersResult.users.forEach(function (userRecord)
                {
                    // For each user
                    var userData = userRecord.toJSON();
                    allUsers.push(userData.uid);
                    console.log(allUsers);
                });
                //res.status(200).send(JSON.stringify(allUsers));

            }).then(function ()
            {
                allUsers.forEach(function (elem)
                {
                    db.ref(`Data/${elem}/Enter`).update({ test: 0, test2: 0 });
                });
            })
            .catch(function (error)
            {
                console.log("Error listing users:", error);
                //res.status(500).send(error);
            });

    });
  

Получая идентификаторы всех пользователей в определенное время
Я хочу изменить данные с помощью UID в качестве родительского, но произошла ошибка
Каждый then() должен возвращать значение или выбрасывать обещание / всегда-

Не могли бы вы сообщить мне, что не так с моим кодом?

Ответ №1:

Может быть, попробуйте добавить оператор возврата к каждому then блоку следующим образом:

 
return admin.auth().listUsers()
            .then(function (listUsersResult)
            {
                listUsersResult.users.forEach(function (userRecord)
                {
                    // For each user
                    var userData = userRecord.toJSON();
                    allUsers.push(userData.uid);
                    console.log(allUsers);
                });
                return true; //<--------------- add this return statement

            }).then(function ()
            {
                allUsers.forEach(function (elem)
                {
                    db.ref(`Data/${elem}/Enter`).update({ test: 0, test2: 0 });
                });
               return true; //<--------------- add this return statement
            })
            .catch(function (error)
            {
                console.log("Error listing users:", error);
                //res.status(500).send(error);
            });