How do I return a list of users if I use the Firebase simple username & password authentication

后端 未结 7 2180
猫巷女王i
猫巷女王i 2020-11-22 05:06

Not sure if I am doing something wrong but using this api https://www.firebase.com/docs/security/simple-login-email-password.html I can successfully create a user - accordin

7条回答
  •  南方客
    南方客 (楼主)
    2020-11-22 05:16

    You can use Google Identity Toolkit API to get a list of all registered users in your Firebase project, this API is used by the Firebase CLI which can be accessed by running firebase auth:export results-file

    Make sure Identity Toolkit API is enabled

    firebase-users-list.js

    const serviceAccount = require('path/to/firebase-sdk-json-service-account');
    
    const googleapis = require('googleapis');
    const identitytoolkit = googleapis.identitytoolkit('v3');
    
    const authClient = new googleapis.auth.JWT(
        serviceAccount.client_email,
        null,
        serviceAccount.private_key,
        ['https://www.googleapis.com/auth/firebase'],
        null
    );
    
    authClient.authorize((err) => {
        if (err) {
            return console.error(err);
        }
    
        let nextPageToken = undefined;
        let users = [];
        const getAccounts = () => identitytoolkit.relyingparty.downloadAccount({
            auth: authClient,
            resource: {
                targetProjectId: serviceAccount.project_id,
                maxResults: 200,
                nextPageToken: nextPageToken
            }
        }, (e, results) => {
            if (e) {
                return console.error(err);
            }
    
            users = users.concat(results.users);
            if (results.nextPageToken) {
                nextPageToken = results.nextPageToken;
                return getAccounts();
            } else {
                console.log(users);
            }
        });
        getAccounts();
    });
    

提交回复
热议问题