【问题标题】:Firebase Cloud Function listUser get 1000+ usersFirebase Cloud Function listUser 获得 1000+ 用户
【发布时间】:2020-10-30 15:34:35
【问题描述】:
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);
            });

    });

我想通过listUser()获取uid后修改以所有用户的uid为key的数据库值,但是listUser()最大1000。如果有好办法获取所有用户的uid,请告诉我

【问题讨论】:

    标签: javascript firebase firebase-authentication google-cloud-functions firebase-admin


    【解决方案1】:

    Firebase Admin SDK 支持分页循环浏览所有注册的用户帐户。按照documentation 中的说明进行操作。您将需要使用 API 在 1000 或更少的批次中循环。文档中提供的代码示例说明了这一点:

    function listAllUsers(nextPageToken) {
      // List batch of users, 1000 at a time.
      admin.auth().listUsers(1000, nextPageToken)
        .then(function(listUsersResult) {
          listUsersResult.users.forEach(function(userRecord) {
            console.log('user', userRecord.toJSON());
          });
          if (listUsersResult.pageToken) {
            // List next batch of users.
            listAllUsers(listUsersResult.pageToken);
          }
        })
        .catch(function(error) {
          console.log('Error listing users:', error);
        });
    }
    // Start listing users from the beginning, 1000 at a time.
    listAllUsers();
    

    【讨论】:

    • 感谢您的回答我希望所有用户 uid 超过 1000
    猜你喜欢
    • 1970-01-01
    • 2022-01-22
    • 2020-10-26
    • 2019-02-25
    • 2018-12-18
    • 1970-01-01
    • 2018-10-03
    • 2022-01-13
    • 2020-07-27
    相关资源
    最近更新 更多