- הפקודה - auth:importמייבאת חשבונות משתמשים ל-Firebase פרויקטים.
- הפקודה - auth:exportמייצאת חשבונות משתמשים ל-JSON, קובצי CSV.
פרמטרים של גיבוב סיסמה
כדי לקבוע את הפרמטרים לגיבוב של סיסמה שמשמשים בפרויקט שלכם, צריך לעבור אל
אימות > הקטע משתמשים במסוף Firebase ולוחצים על
על סמל שלוש הנקודות שמעל רשימת המשתמשים. תופיע תיבת דו-שיח עם רשימה
בפרמטרים לגיבוב של סיסמה שניתן להשתמש בהם עם auth:import ו-auth:export
פקודות:
hash_config {
  algorithm: SCRYPT,
  base64_signer_key: <...sensitive...>,
  base64_salt_separator: <...sensitive...>,
  rounds: 8,
  mem_cost: 14,
}
הערכים האלה רגישים, לכן חשוב לאחסן אותם בזהירות. רוב הפרויקטים ב-Firebase משתמשים ב-SCRYPT, גרסה שונה של אלגוריתם הגיבוב scrypt, שמשמשת כברירת המחדל בפרויקטים חדשים.
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 | האלגוריתם שמשמש לגיבוב (hash) של סיסמאות בקובץ של חשבון המשתמש. נדרש כדי לייבא חשבונות עם שדות סיסמה. אחד מהערכים הבאים: BCRYPT,SCRYPT,STANDARD_SCRYPTHMAC_SHA512,HMAC_SHA256,HMAC_SHA1,HMAC_MD5,MD5,SHA512,SHA256,SHA1,PBKDF_SHA1,PBKDF2_SHA256. | 
| מפתח גיבוב (hash) | מפתח המשמש לגיבוב של סיסמאות. נדרש עבור SCRYPT,HMAC_SHA512,HMAC_SHA256,
     אלגוריתמיםHMAC_SHA1ו-HMAC_MD5.
     הארגומנט הזה חייב להיות בפורמט בקידוד base64
     String. | 
| salt-separator | מפריד מלח שיתווסף ל-salt לצורך אימות הסיסמה. אופציונלי לכל האלגוריתמים. הארגומנט הזה חייב להיות בפורמט מחרוזת בקידוד base64. | 
| סבבים | מספר הסבבים המשמשים לגיבוב של סיסמאות. נדרש עבור SCRYPT,MD5,SHA512,SHA256,SHA1,PBKDF_SHA1וגםPBKDF2_SHA256אלגוריתמים. | 
| ממ-עלות | הפרמטר הזה מייצג את עלות הזיכרון שנדרשת עבור
      האלגוריתם SCRYPTאו עלות המעבד (CPU)/הזיכרון שנדרשת לצורך
      האלגוריתםSTANDARD_SCRYPT. | 
| טעינה במקביל | המקבילה של אלגוריתם הגיבוב (hashing). חובה לאלגוריתם STANDARD_SCRYPT. | 
| גודל בלוק | גודל הבלוק (בדרך כלל 8) של אלגוריתם הגיבוב. חובה לאלגוריתם STANDARD_SCRYPT. | 
| dk-len | אורך המפתח שנגזר מהאלגוריתם של הגיבוב. חובה לאלגוריתם STANDARD_SCRYPT. | 
| גיבוב-קלט-סידור | הסדר של הסיסמה ונתוני המלח. הערכים האפשריים הם SALT_FIRSTו-PASSWORD_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 שאליו רוצים לייצא. להצגת קובץ . | 
| file_format | אופציונלי. פורמט הקובץ לייצוא: CSV או JSON. אם שם הקובץ שצוין בפרמטר account_fileמסתיים.csvאו.json, נעשה שימוש בפורמט הזה
      המערכת מתעלמת מהפרמטר הזה. | 
תבנית קובץ
קובץ חשבון המשתמש יכול להיות בפורמט CSV או JSON.
CSV
קובץ CSV של חשבון משתמש הוא בפורמט הבא:
| מספר עמודה | תיאור השדה | סוג שדה | תגובות | 
|---|---|---|---|
| 1 | UID | String | חובה המזהה הזה צריך להיות ייחודי לכל החשבונות בפרויקטים שלכם ב-Firebase. אם תייבאו חשבון עם UID שכבר קיים, החשבון יוחלף. | 
| 2 | אימייל | String | אופציונלי | 
| 3 | כתובת דוא"ל אומתה | בוליאני | אופציונלי | 
| 4 | גיבוב (hash) של סיסמה | String | אופציונלי מחרוזת בקידוד base64. בשדה הזה צריך להיות למבצע הקריאה החוזרת תפקיד עריכה או בעלים. | 
| 5 | פיסת מידע לסיסמה | String | אופציונלי מחרוזת בקידוד base64. כדי להשתמש בשדה הזה, למבצע הקריאה החוזרת צריכה להיות הרשאת עריכה או הרשאת בעלים. | 
| 6 | שם | String | אופציונלי | 
| 7 | כתובת URL של תמונה | String | אופציונלי | 
| 8 | מזהה Google | String | אופציונלי | 
| 9 | כתובת האימייל של Google | String | אופציונלי | 
| 10 | שם תצוגה ב-Google | String | אופציונלי | 
| 11 | כתובת אתר של תמונה ב-Google Photos | String | אופציונלי | 
| 12 | מזהה Facebook | String | אופציונלי | 
| 13 | כתובת אימייל ב-Facebook | String | אופציונלי | 
| 14 | שם תצוגה ב-Facebook | String | אופציונלי | 
| 15 | כתובת URL של תמונה ב-Facebook | String | אופציונלי | 
| 16 | מזהה Twitter | String | אופציונלי | 
| 17 | כתובת אימייל ב-Twitter | String | אופציונלי | 
| 18 | שם תצוגה בטוויטר | String | אופציונלי | 
| 19 | כתובת URL של תמונה ב-Twitter | String | אופציונלי | 
| 20 | מזהה GitHub | String | אופציונלי | 
| 21 | כתובת אימייל מ-GitHub | String | אופציונלי | 
| 22 | שם תצוגה ב-GitHub | String | אופציונלי | 
| 23 | כתובת URL של תמונה ב-GitHub | String | אופציונלי | 
| 24 | מועד היצירה של משתמש | ארוך | אופציונלי חותמת זמן של Epoch Unix באלפיות השנייה. | 
| 25 | שעת הכניסה האחרונה | ארוך | אופציונלי חותמת זמן של Epoch Unix באלפיות השנייה. | 
| 26 | מספר טלפון | String | אופציונלי | 
גם אם לא מציינים ערך אופציונלי, צריך לוודא שעדיין כוללים שדה ריק עבור הערך. שדה ריק יכול להכיל כל מספר של רווח תווים.
לדוגמה, השורה הבאה מייצגת חשבון משתמש:
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
        },
        ...
      ]
    },
    ...
  ]
}מחליפים את PROVIDER_ID באחד מהערכים הבאים:
- google.com
- facebook.com
- github.com
- twitter.com