⚠️
【CLI】Firebase Authenticationにjsonファイルからデータをimportする過程でつまづいた
【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: [
{},
{},
{},
]
}
正確に確認する必要がありました。
このあたりで数時間悩みました。
まとめ
ドキュメントを正確に読むことが重要です。
また、パスワードハッシュなどの知識も補強していく必要があると感じました。
Discussion