Jam*_*mes 2 node.js firebase firebase-authentication google-cloud-functions firebase-admin
如果我添加到 Firebase 云函数,则无法获得用户列表。我尝试了很多东西,并遵循了 firebase 文档的指南,但它一直在运行,但从未加载。
exports.listAllUsers = functions.https.onRequest((data, context) => {
// List all users
return listAllUsers();
});
function listAllUsers() {
// List batch of users, 1000 at a time.
var allUsers = [];
return admin.auth().listUsers()
.then(function (listUsersResult) {
listUsersResult.users.forEach(function (userRecord) {
// For each user
var userData = userRecord.toJSON();
allUsers.push(userData);
});
return allUsers
})
.catch(function (error) {
console.log("Error listing users:", error);
});
}
Run Code Online (Sandbox Code Playgroud)
您似乎混淆了两种类型的 Cloud 函数:
当您将函数声明为 时functions.https.onRequest,您需要将响应写入响应对象。根据有关通过 HTTP 请求调用函数的文档,您需要执行以下操作:
exports.listAllUsers = functions.https.onRequest((req, res) => {
// List batch of users, 1000 at a time.
var allUsers = [];
return admin.auth().listUsers()
.then(function (listUsersResult) {
listUsersResult.users.forEach(function (userRecord) {
// For each user
var userData = userRecord.toJSON();
allUsers.push(userData);
});
res.status(200).send(JSON.stringify(allUsers));
})
.catch(function (error) {
console.log("Error listing users:", error);
res.status(500).send(error);
});
});
Run Code Online (Sandbox Code Playgroud)
如果您想使用 Firebase SDK 从您的应用程序中调用您的 Cloud Functions 函数,您需要将您的函数声明为:
exports.listAllUsers = functions.https.onCall((data, context) => {
// List all users
return listAllUsers();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1090 次 |
| 最近记录: |