从Firebase AdminSDK过滤用户

时间:2019-09-08 09:02:00

标签: node.js firebase firebase-authentication firebase-admin

我想在这里实现的是,我应该能够在数组中传递电话号码,并且结果应包含与数组中包含的电话号码匹配的用户结果。

检索所有用户都工作正常,但我无法找出如何过滤结果的方法。

exports.listUsers = functions.https.onRequest(async(req, res) => {
    // List batch of users, 1000 at a time.
    const nextPageToken = req.query.token
    const mobileNumbers = req.query.phoneNumbers

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

            return res.send(listUsersResult);
        })
        .catch(function(error) {
            console.log('Error listing users:', error);
        });
});

1 个答案:

答案 0 :(得分:1)

Firebase Admin SDK为retrieving individual users by phone numberby email提供了API。但是,没有用于通过属性print("These letters haven't been guessed yet: " + ''.join(sorted(alphabet - guessed))) #Output: These letters haven't been guessed yet: bcdefghijklmnopqrstuvwxyz phoneNumber过滤/查询所有用户的批处理检索API。

解决方法1:Retrieve all users和过滤器

  • 检索所有用户的列表
  • 过滤列表

解决方法2:将用户存储在另一个数据库中

如果过滤大型用户群是应用程序的常见操作,则可以通过将用户存储在单独的数据库中来提高性能。

  • 新用户注册后,将用户信息存储在另一个数据库中,例如Firestore,MySQL,PostgreSQL。
  • 使用标准查询功能来过滤结果