⚠️

【CLI】Firebase Authenticationにjsonファイルからデータをimportする過程でつまづいた

2023/06/16に公開

【CLI】Firebase Authenticationにjsonファイルからデータをimportする過程でつまづいた

Firebase Authenticationにはファイルからデータのimportができる。

auth:import と auth:export
もちろんexportもできます。
ファイル形式は CSV または JSON ファイルです。
ファイルのフォーマットはこちら
今回はJsonファイルからのimportに挑戦しました。

使ったコマンド

CLIコマンド

firebase auth:import ./user.json --hash-algo=HMAC_SHA256  --hash-key=ハッシュキー

つまづいた箇所

passwordHashの値でエラーになる。

passwordHashに設定する値をBuffer.from(passwordHash)としていたが、passwordHashをそのまま渡すだけでよかったようです。

渡すobjectのpropertyを正しく設定する必要がある

先ほども記載しましたが正しいフォーマットで記述する必要があります。

「フィールドの説明」ではuidと記述があったので、そのまま記載していたが、正しくはlocalIdであるべきでした。
ちゃんと読まないとダメ🙅‍♂️

{
    "localId": UID,
    "email": EMAIL_ADDRESS
    "emailVerified": EMAIL_VERIFIED,
    "passwordHash": BASE64_ENCODED_PASSWORD_HASH,
    "salt": BASE64_ENCODED_PASSWORD_SALT,
    "displayName": NAME,
    "photoUrl": PHOTO_URL,
    "createdAt": CREATED_AT_IN_MILLIS,
    "lastSignedInAt": LAST_SIGNEDIN_AT_IN_MILLIS,
    "phoneNumber": PHONE_NUMBER
    "providerUserInfo": [
      {
        "providerId": PROVIDER_ID,
        "rawId": PROVIDER_UID,
        "email":  PROVIDER_EMAIL,
        "displayName": PROVIDER_NAME,
        "photoUrl": PROVIDER_PHOTO_URL
      },
      ...
    ]
  },

usersをkeyにして渡す必要があった

上のobject(user_objectsとする)をそのままリストに突っ込んで、以下のような形としていましたが正しくなかったです。

[
    user_objects,
    user_objects,
    user_objects
]

正解はusersをkeyにして渡す必要があったのようにする必要があリマした。

{
    users: [
        {},
        {},
        {},
    ]
}

ちゃんと見ないとダメでしたね😭
このあたりで数時間悩みました。

まとめ

documentをちゃんと読みます!
また、パスワードハッシュなどの知識不足なので勉強します!

GitHubで編集を提案

Discussion