我对可调用的 firebase 云函数 ( exports.listAllUsers ) 有疑问。
后端:使用admin.auth().listUsers的 Nodejs 和 Firebase-Cloud_functions
问题:结果(usersList;具有用户 uid 的数组)在云函数模拟器(日志)中正常,但在客户端(控制台)中无效。浏览器中的 log(usersList) 为空)
可能是与...相关的问题:对承诺的理解不好。第二个代码示例使用 async/await 但不使用 .then()。
函数listAllUsers的代码基本上是从文档中复制粘贴的(原始代码片段:https ://firebase.google.com/docs/auth/admin/manage-users#list_all_users )。我的代码修改为5(代码中的注释),获取用户uid列表:
exports.listAllUsers = functions.https.onCall(() => { // -1) callable function
const usersList = ['12323211'] // ----------------------2) first user uid, just a sample
function listAllUsers (nextPageToken) {
// List batch of users, 1000 at a time.
admin.auth().listUsers(1000, nextPageToken)
.then((listUsersResult) => {
listUsersResult.users.forEach((userRecord) => {
usersList.push(userRecord.uid) // --------------3) get users uids
})
if (listUsersResult.pageToken) {
// List next batch of users.
listAllUsers(list
我正在使用 firebase 模拟器。Cloud functions log没问题,可以看到sample uid和其他uid:
但我在客户端没有得到相同的结果:
我想我在做一些与承诺相关的错误......因为代码的简化正在使用异步/等待:
UsersResult.pageToken)
}
console.log(usersList) //-------------------------4) list users uid (cloud functions console)
return usersList //-------------------------------5) return to the client the same as showed at the console
})
.catch((error) => {
console.log('Error listing users:', error)
return null
})
}
// Start listing users from the beginning, 1000 at a time.
listAllUsers()
})
客户端中的方法是...
getUsersList: async function (userType) {
const usersList = await this.$fb.functions().httpsCallable('listAllUsers')()
console.log('usersList: ', usersList)
}
小怪兽爱吃肉
慕标5832272
相关分类