콘솔로 이동

auth:import 및 auth:export

auth:importauth:export 명령은 사용자 계정을 Firebase 프로젝트로 가져오고 사용자 계정을 JSON 및 CSV 파일로 내보냅니다.

auth:import

firebase auth:import account_file     \
    --hash-algo=hash_algorithm        \
    --hash-key=key                    \
    --salt-separator=salt_separator   \
    --rounds=rounds                   \
    --mem-cost=mem_cost               \
    --parallelization=parallelization \
    --block-size=block_size           \
    --dk-len=dk_len                   \
    --hash-input-order=hash_input_order
매개변수
account_file 가져올 사용자 계정을 포함하는 CSV 또는 JSON 파일입니다. 파일 형식을 참조하세요.
hash-algo 사용자 계정 파일에서 비밀번호를 해시하는 데 사용된 알고리즘입니다. 비밀번호 필드가 있는 계정을 가져올 때 필요합니다. 다음 값 중 하나입니다. BCRYPT, SCRYPT, STANDARD_SCRYPT, HMAC_SHA512, HMAC_SHA256, HMAC_SHA1, HMAC_MD5, MD5, SHA512, SHA256, SHA1, PBKDF_SHA1, PBKDF2_SHA256.
hash-key 비밀번호를 해시하는 데 사용된 키입니다. SCRYPT, HMAC_SHA512, HMAC_SHA256, HMAC_SHA1HMAC_MD5 알고리즘에 필요합니다. 이 인수는 base64 인코딩 문자열 형식이어야 합니다.
salt-separator 비밀번호를 확인할 때 솔트에 추가되는 솔트 구분자입니다. 모든 알고리즘에서 선택사항입니다. 이 인수는 base64 인코딩 문자열 형식이어야 합니다.
rounds 비밀번호를 해시하는 데 사용된 라운드 수입니다. SCRYPT, MD5, SHA512, SHA256, SHA1, PBKDF_SHA1PBKDF2_SHA256 알고리즘에 필요합니다.
mem-cost SCRYPT 알고리즘에 필요한 메모리 비용 또는 STANDARD_SCRYPT 알고리즘에 필요한 CPU/메모리 비용을 나타냅니다.
parallelization 해싱 알고리즘의 병렬 처리입니다. STANDARD_SCRYPT 알고리즘에 필요합니다.
block-size 해싱 알고리즘의 블록 크기(일반적으로 8)입니다. STANDARD_SCRYPT 알고리즘에 필요합니다.
dk-len 해싱 알고리즘의 파생 키 길이입니다. STANDARD_SCRYPT 알고리즘에 필요합니다.
hash-input-order 비밀번호와 솔트의 순서입니다. 가능한 값은 SALT_FIRSTPASSWORD_FIRST입니다. 이 플래그는 SHA512, SHA256, SHA1, MD5, HMAC_SHA512, HMAC_SHA256, HMAC_SHA1, HMAC_MD5에 적용됩니다.

auth:export

firebase auth:export account_file --format=file_format
매개변수
account_file 내보낼 대상 CSV 또는 JSON 파일입니다. 파일 형식을 참조하세요.
format 선택사항: 내보낼 파일 형식으로서 csv 또는 json입니다. account_file 매개변수에 지정된 파일 이름이 .csv 또는 .json으로 끝나면 해당 형식이 사용되고 이 매개변수는 무시됩니다.

파일 형식

사용자 계정 파일은 CSV 또는 JSON 형식일 수 있습니다.

CSV

CSV 사용자 계정 파일의 형식은 다음과 같습니다.

열 번호 필드 설명 필드 유형 설명
1 UID 문자열 필수항목. 이 ID는 Firebase 프로젝트의 모든 계정에서 고유해야 합니다. 가져온 계정의 UID가 이미 존재하는 경우 계정을 덮어쓰게 됩니다.
2 이메일 문자열 선택사항
3 이메일 인증 여부 부울 선택사항
4 비밀번호 해시 문자열 선택사항. base64 인코딩 문자열입니다.
5 비밀번호 솔트 문자열 선택사항. base64 인코딩 문자열입니다.
6 이름 문자열 선택사항
7 사진 URL 문자열 선택사항
8 Google ID 문자열 선택사항
9 Google 이메일 문자열 선택사항
10 Google 표시 이름 문자열 선택사항
11 Google 사진 URL 문자열 선택사항
12 Facebook ID 문자열 선택사항
13 Facebook 이메일 문자열 선택사항
14 Facebook 표시 이름 문자열 선택사항
15 Facebook 사진 URL 문자열 선택사항
16 Twitter ID 문자열 선택사항
17 Twitter 이메일 문자열 선택사항
18 Twitter 표시 이름 문자열 선택사항
19 Twitter 사진 URL 문자열 선택사항
20 GitHub ID 문자열 선택사항
21 GitHub 이메일 문자열 선택사항
22 GitHub 표시 이름 문자열 선택사항
23 GitHub 사진 URL 문자열 선택사항
24 사용자 생성 시간 Long (선택사항) Unix 기점 타임스탬프(밀리초)입니다.
25개 마지막 로그인 시간 Long (선택사항) Unix 기점 타임스탬프(밀리초)입니다.
26 전화번호 문자열 (선택사항)

선택적 값을 지정하지 않더라도 빈 필드를 계속 값으로 포함해야 합니다. 공백 문자의 수에 관계없이 빈 필드로 인식됩니다.

예를 들어 다음 줄은 사용자 계정을 나타냅니다.

111, test@test.org, false, Jlf7onfLbzqPNFP/1pqhx6fQF/w=, c2FsdC0x, Test User, http://photo.com/123, , , , , 123, test@test.org, Test FB User, http://photo.com/456, , , , , , , , , 1486324027000, 1486324027000

JSON

JSON 사용자 계정 파일의 형식은 다음과 같습니다.

{
  "users": [
    {
      "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
        },
        ...
      ]
    },
    ...
  ]
}

providerId 필드의 값은 google.com, facebook.com, github.com, twitter.com 중 하나여야 합니다.