くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

Firebase Admin Authでよくつかうものまとめ(ユーザ一覧など)

管理系のスクリプトを書くときに、firebase-adminで操作をするけど、よく調べ直すのでまとめてみた。

元情報は、以下辺り。

ユーザの一覧を取得

import * as admin from "firebase-admin";
// 初期設定は略

async function fetchAllAuthUsers() {
  const result: admin.auth.UserRecord[] = [];
  // ユーザ一覧の取得は、1000件まで
  let listUsersResult = await admin.auth().listUsers(1000);
  result.push(...listUsersResult.users);

  // 1001件目以降は、pageTokenを利用して取得する
  while (!!listUsersResult.pageToken) {
    listUsersResult = await admin.auth().listUsers(1000, listUsersResult.pageToken);
    result.push(...listUsersResult.users);
  }
  return result;
}
const user = await fetchAllAuthUsers();

取得するUserRecordは、以下のReferenceに記載。

ユーザの取得

import * as admin from "firebase-admin";
// 初期設定は略

// UIDで取得
const userRecord = admin.auth().getUser(uid);

ユーザの作成

import * as admin from "firebase-admin";
// 初期設定は略

const user = {
  email: 'user@example.com',
  emailVerified: false,
  phoneNumber: '+11234567890',
  password: 'secretPassword',
  displayName: 'John Doe',
  photoURL: 'http://www.example.com/12345678/photo.png',
  disabled: false
};
await admin.auth().createUser(user);

ユーザの更新

import * as admin from "firebase-admin";
// 初期設定は略

// 更新する情報。指定してないフィールドは変更されない。
const updateInfo = {
  email: 'user@example.com',
  emailVerified: false,
  phoneNumber: '+11234567890',
  password: 'secretPassword',
  displayName: 'John Doe',
  photoURL: 'http://www.example.com/12345678/photo.png',
  disabled: false
};
await admin.auth().updateUser(uid, updateInfo)

ユーザの削除

import * as admin from "firebase-admin";
// 初期設定は略

await admin.auth().deleteUser(uid);

以上!!

参考にしたサイト様