⚠️
【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: [
{},
{},
{},
]
}
ちゃんと見ないとダメでしたね😭
このあたりで数時間悩みました。
まとめ
documentをちゃんと読みます!
また、パスワードハッシュなどの知識不足なので勉強します!
Discussion