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