使用Node.js列出Firebase iOS应用中的所有用户

时间:2019-01-10 08:43:23

标签: ios node.js firebase firebase-authentication

我正在尝试在node.js中创建所有Firebase用户的列表。我正在按照https://firebase.google.com/docs/auth/admin/manage-users

上的说明进行操作

运行以下代码时,我抛出一个错误提示

TypeError: admin.auth(...).listUsers is not a function

我怀疑firebase文档在不同地方以不同的方式使用“ admin”,而我从初始化中在下面使用的“ admin”不是我应该用来列出用户的那个,但是我不能弄清楚如何纠正它。该文档不是很清楚。

请注意,对于.initializeApp({...})代码,我添加了一些“ ...”,否则我的文本正确。

var admin = require('firebase-admin');
var serviceAccount = require('../serviceAccountKey');

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: 'https://...',
  databaseAuthVariableOverride: {
    uid: ' ... ',
  },
});

const db = admin.database();
const refUsersServer = db.ref('usersServer');

function listAllUsers(nextPageToken) {
  // List batch of users, 1000 at a time.
  // admin.auth().listUsers(1000, nextPageToken)

  admin.auth().listUsers(1000, nextPageToken)
    .then(function(listUsersResult) {
      listUsersResult.users.forEach(function(userRecord) {
        console.log("user", userRecord.toJSON());
      });

      // List next batch of users.
      if (listUsersResult.pageToken) {
        listAllUsers(listUsersResult.pageToken)
      }
    })
    .catch(function(error) {
      console.log("Error listing users:", error);
    });
}

// Start listing users from the beginning, 1000 at a time.
listAllUsers();

1 个答案:

答案 0 :(得分:1)

该代码可以正常运行,但只能在最新的firebase-admin版本中使用。在早期版本中,listUsers函数没有退出。

我的错误是我没有运行最新的firebase-admin版本,这要感谢我意识到的David'G'。谢谢。