gpt4 book ai didi

javascript - 在具有两个或多个返回 promise 的方法的 Firebase Cloud Function 中返回什么?

转载 作者:行者123 更新时间:2023-11-30 14:49:39 25 4
gpt4 key购买 nike

我有一个 Cloud Functions,它监听 Firebase Database 中的变化,并使用返回 promise 的函数进行响应。

exports.clean_up_anonymous_users =
functions.database.ref('path/to/ref')
.onWrite(event => {

// Make Sure it's not a delete event
if (!event.data.val()) {
return 0;
}

const cleanUp = event.data.val();

// Normal Boolean check of my value
if (cleanUp === true) {

// Deletes Anonymous Users (returns a promise)
listAllUsers();

// Removes the value from the Database (returns a promise)
return removeFromQueue("path/to/ref");

}

// If cleanUp === false
return 0;
});

// ===============================================
// I think that's enough but if you wish, read on!
// ===============================================

function listAllUsers(nextPageToken) {
// List batch of users, 1000 at a time.
admin.auth().listUsers(1000, nextPageToken)
.then(function(listUsersResult) {
listUsersResult.users.forEach(function(userRecord) {
var userInfo = userRecord.providerData;
if (userInfo.length === 0) {
var uid = userRecord.uid;
admin.auth().deleteUser(uid)
.then(function() {
console.log("Successfully deleted user:", uid);
})
.catch(function(error) {
console.log("Error deleting user:", error);
});
}
});
if (listUsersResult.pageToken) {
// List next batch of users.
listAllUsers(listUsersResult.pageToken);
}
})
.catch(function(error) {
console.log("Error listing users:", error);
});
}

function removeFromQueue(path) {
admin.database().ref(path).remove()
.then(function() {
console.log("Remove succeeded.")
})
.catch(function(error) {
console.log("Remove failed: " + error.message)
});
}

此代码按预期工作,但在日志窗口中显示错误:

Error: Function returned undefined, expected Promise or value

如何消除该错误?

最佳答案

最后定义的两个函数确实返回了 undefined,因为它们没有返回任何东西。这在 Ruby 中可行,函数体中最后解释的行是 returned。

因此,在这些函数内的主体开始之前添加 return,因为在它们内部,您正在使用 Promise 链,当它们的执行完成时将返回 Promise。

所以在你的代码中会有这样的:

return admin.auth()...

return admin.database()...

关于javascript - 在具有两个或多个返回 promise 的方法的 Firebase Cloud Function 中返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48360181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com