Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

עובר מדינה בפעולות דוא"ל

תוכל להעביר את המצב באמצעות כתובת URL להמשך בעת שליחת פעולות דוא"ל לצורך איפוס סיסמה או אימות דוא"ל של משתמש. זה מספק למשתמש את האפשרות לחזור לאפליקציה לאחר השלמת הפעולה. בנוסף, תוכל לציין אם לטפל בקישור פעולה בדוא"ל ישירות מאפליקציה לנייד כאשר הוא מותקן במקום דף אינטרנט.

זה יכול להיות שימושי ביותר בתרחישים הנפוצים הבאים:

  • משתמש, שאינו מחובר כרגע, עשוי לנסות לגשת לתוכן הדורש כניסה של המשתמש. עם זאת, ייתכן שהמשתמש שכח את הסיסמה שלו ולכן יפעיל את זרימת הסיסמה לאיפוס. בסוף הזרימה, המשתמש מצפה לחזור לקטע האפליקציה שאליה ניסה לגשת.

  • אפליקציה רשאית להציע גישה לחשבונות מאומתים בלבד. לדוגמה, עלון עשוי לדרוש מהמשתמש לאמת את כתובת הדוא"ל שלו לפני הרשמה. המשתמש היה עובר את זרימת אימות הדוא"ל ומצפה לחזור לאפליקציה כדי להשלים את המנוי שלו.

  • במקרים אחרים, ייתכן שהמשתמש התחיל את הזרימה מהמכשיר הנייד שלו ומצפה לאחר האימות לחזור לאפליקציית הנייד שלו במקום לדפדפן.

היכולת להעביר מצב באמצעות כתובת URL להמשך היא תכונה עוצמתית ש- Firebase Auth מספקת ואשר יכולה לשפר משמעותית את חווית המשתמש.

מצב עובר/המשך כתובת URL בפעולות דוא"ל

כדי בבטחה להעביר להמשיך URL, את הדומיין עבור כתובת האתר יצטרכו להיות מורשה של קונסולת Firebase . הדבר נעשה בסעיף האימות על ידי הוספת תחום זה לרשימת הדומיינים שמורשים במזל-בלשונית שיטה אם הוא לא נמצא שם כבר.

firebase.auth.ActionCodeSettings למשל צריכה להינתן בעת שליחת הודעת איפוס סיסמה או דוא"ל לאימות. ממשק זה לוקח את הפרמטרים הבאים:

פָּרָמֶטֶר סוּג תיאור
url חוּט

קובע את הקישור (מצב/המשך כתובת URL) בעל משמעויות שונות בהקשרים שונים:

  • כאשר הקישור הוא טפל יישומונים הפעולה באינטרנט, זהו הקישור העמוק continueUrl פרמטר שאילתה.
  • כאשר הקישור מתבצע ביישום ישירות, זהו continueUrl פרמטר שאילתה הקישור העמוק של הקישור הדינמי.
iOS ({bundleId: string} | לא מוגדר) מגדיר את מזהה צרור iOS. פעולה זו תנסה לפתוח את הקישור ביישום iOS אם הוא מותקן. יש לרשום את אפליקציית iOS במסוף.
android ({packageName: string, installApp: boolean | undefined, minimumVersion: string | undefined} | undefined) מגדיר את שם החבילה של Android. זה ינסה לפתוח את הקישור ביישום אנדרואיד אם הוא מותקן. אם installApp עובר, הוא מציין אם להתקין את אפליקציית Android אם המכשיר תומך בה והיישום עדיין לא מותקן. אם שדה זה מסופק ללא שם חבילה, נזרקת שגיאה המסבירה כי יש לציין את שם החבילה יחד עם שדה זה. אם צוין minimumVersion והתקנת גירסה ישנה יותר של האפליקציה, המשתמש יועבר לחנות Play כדי לשדרג את האפליקציה. יש לרשום את אפליקציית Android במסוף.
handleCodeInApp (בוליאני | לא מוגדר) אם הקישור לפעולה בדוא"ל ייפתח באפליקציה לנייד או בקישור אינטרנט קודם. ברירת המחדל היא שקר. כאשר הוא מוגדר כ- true, הקישור של קוד הפעולה יישלח כקישור אוניברסלי או קישור לאפליקציית Android וייפתח על ידי האפליקציה אם יותקן. במקרה השקר, הקוד יישלח לווידג'ט האינטרנט תחילה ולאחר מכן ההמשך ינתב לאפליקציה אם יותקן.
dynamicLinkDomain (מחרוזת | לא מוגדר) מגדיר את דומיין הקישור הדינאמי (או תת הדומיין) לשימוש עבור הקישור הנוכחי אם יש לפתוח אותו באמצעות קישורים דינמיים של Firebase. מכיוון שניתן להגדיר מספר דומיינים של קישורים דינמיים לכל פרויקט, שדה זה מספק את היכולת לבחור במפורש אחד. אם לא מסופק, הדומיין הראשון משמש כברירת מחדל.

הדוגמה הבאה ממחישה כיצד לשלוח קישור האימות בדוא"ל שתיפתח יישום נייד הראשון בתור קישור דינמי Firebase באמצעות הדומיין קישור מותאם אישית דינמית example.page.link (יישום iOS com.example.ios או ל- Android com.example.android שבן האפליקציה תתקין אם כבר לא מותקן הגרסה המינימאלית היא 12 ). הקישור העמוק יכיל את להמשיך URL מטען https://www.example.com/?email=user@example.com .

var actionCodeSettings = {
  url: 'https://www.example.com/?email=' + firebase.auth().currentUser.email,
  iOS: {
    bundleId: 'com.example.ios'
  },
  android: {
    packageName: 'com.example.android',
    installApp: true,
    minimumVersion: '12'
  },
  handleCodeInApp: true,
  // When multiple custom dynamic link domains are defined, specify which
  // one to use.
  dynamicLinkDomain: "example.page.link"
};
firebase.auth().currentUser.sendEmailVerification(actionCodeSettings)
  .then(function() {
    // Verification email sent.
  })
  .catch(function(error) {
    // Error occurred. Inspect error.code.
  });

מחבר Firebase משתמש Firebase דינמי קישורים בעת שליחת קישור שאמור להיפתח ב יישום נייד. על מנת להשתמש בתכונה זו, יש להגדיר קישורים דינאמיים במסוף Firebase.

  1. אפשר קישורים דינמיים של Firebase:

    1. בשנות ה קונסולת Firebase , פתח את קטע הקישורים הדינמיים.
    2. אם עדיין לא קיבלת את תנאי הקישורים הדינמיים ויצרת דומיין של קישורים דינאמיים, עשה זאת כעת.

      אם כבר יצרת דומיין של קישורים דינאמיים, שים לב אליו. דומיין של קישורים דינאמיים נראה בדרך כלל בדוגמה הבאה:

      example.page.link

      תצטרך ערך זה בעת הגדרת אפליקציית iOS או Android שלך ליירוט את הקישור הנכנס.

  2. הגדרת יישומי אנדרואיד:

    1. אם אתה מתכנן לטפל בקישורים אלה מיישום Android שלך, יש לציין את שם חבילת Android בהגדרות הפרויקט של Firebase Console. בנוסף, יש לספק את SHA-1 ו- SHA-256 של אישור היישום.
    2. אתה גם צריך להגדיר את מסנן כוונות הקישור העמוק שלך AndroidManifest.xml קובץ.
    3. למידע נוסף בנושא זה, עיין קבלת הוראות קישורים דינמיים אנדרואיד .
  3. הגדרת יישומי iOS:

    1. אם אתה מתכנן לטפל בקישורים אלה מיישום iOS שלך, יש לציין את מזהה צרור iOS בהגדרות הפרויקט של Firebase Console. בנוסף, יש לציין גם את מזהה App Store ואת מזהה צוות המפתחים של Apple.
    2. יהיה עליך גם להגדיר את תחום הקישור האוניברסלי FDL כדומיין משויך ביכולות היישום שלך.
    3. אם בכוונתך להפיץ את היישום שלך לגרסאות 8 ומטה של ​​iOS, יהיה עליך להגדיר את מזהה צרור iOS שלך כערכה מותאמת אישית עבור כתובות אתרים נכנסות.
    4. למידע נוסף בנושא זה, עיין קבלת הוראות קישורי iOS הדינמי .

טיפול בפעולות דוא"ל ביישום אינטרנט

תוכל לציין אם ברצונך לטפל קודם כל בקישור קוד הפעולה מיישום אינטרנט ולאחר מכן להפנות לדף אינטרנט אחר או ליישום נייד לאחר השלמתו המוצלחת, בתנאי שהיישום הנייד זמין. הדבר נעשה על ידי קביעת handleCodeInApp כדי false של firebase.auth.ActionCodeSettings האובייקט. אמנם אין צורך במזהה צרור iOS או שם חבילה של Android, אך מתן אותם יאפשר למשתמש להפנות חזרה לאפליקציה שצוינה לאחר השלמת קוד הפעולה בדוא"ל.

כתובת האתר המשמשת כאן היא כתובת האתר המוגדרת בקטע תבניות הפעולה בדוא"ל. לכל הפרויקטים מסופק ברירת מחדל. עיין אישית מטפלי הדוא"ל כדי ללמוד עוד על כיצד להתאים אישית את מטפל פעולה בדוא"ל.

במקרה זה, הקישור בתוך continueUrl פרמטר השאילתה יהיה קישור FDL מטען אשר הוא URL המצוין ActionCodeSettings האובייקט. למרות שאתה יכול ליירט את הקישור הנכנס מהאפליקציה שלך ולטפל בה ללא תלות נוספת, אנו ממליצים להשתמש בספריית לקוחות FDL כדי לנתח עבורך את הקישור העמוק.

כאשר הטיפול פעולות דואר אלקטרוני כגון אימות הדוא"ל, את קוד הפעולה מן oobCode הצרכים פרמטר השאילתה להיות מנותח מהקישור עמוק ולאחר מכן להחיל באמצעות applyActionCode כדי שהשינוי ייכנס לתוקף, דואר אלקטרוני כלומר שיש לאמת.

טיפול בפעולות דוא"ל ביישום נייד

תוכל לציין אם ברצונך לטפל בקישור קוד הפעולה ביישום הנייד שלך תחילה, בתנאי שהוא מותקן. עם יישומי אנדרואיד, יש לך גם את היכולת להגדיר דרך android.installApp כי היישום יותקן אם המכשיר תומך בה והיא לא כבר מותקנת. אם לוחצים על הקישור ממכשיר שאינו תומך ביישום הנייד, הוא נפתח מדף אינטרנט במקום זאת. הדבר נעשה על ידי קביעת handleCodeInApp כדי true של firebase.auth.ActionCodeSettings האובייקט. יש לציין גם את שם החבילה של האפליקציה לנייד או מזהה החבילה של iOS.

כתובת האתר הנפתחת המשמשת כאן, כאשר אין אפליקציה לנייד זמינה, היא זו שמוגדרת בחלק התבניות לפעולות דוא"ל. לכל הפרויקטים מסופק ברירת מחדל. עיין אישית מטפלי הדוא"ל כדי ללמוד עוד על כיצד להתאים אישית את מטפל פעולה בדוא"ל.

במקרה זה, הקישור של אפליקציה לנייד נשלח למשתמש יהיה קישור FDL מטען שאת הכתובת קוד הפעולה, מוגדר במסוף, עם פרמטרים של שאילתה oobCode , mode , apiKey ו continueUrl . זה האחרון יהיה המקורי URL שצוין ActionCodeSettings האובייקט. למרות שאתה יכול ליירט את הקישור הנכנס מהאפליקציה שלך ולטפל בה ללא תלות נוספת, אנו ממליצים להשתמש בספריית לקוחות FDL כדי לנתח עבורך את הקישור העמוק. קוד הפעולה ניתן ליישם ישירות מיישום נייד בדומה לאופן בו הוא מטופל מזרימת האינטרנט המתואר מטפלי התאמה אישית הדוא"ל הסעיף.

כאשר הטיפול פעולות דואר אלקטרוני כגון אימות הדוא"ל, את קוד הפעולה מן oobCode הצרכים פרמטר השאילתה להיות מנותח מהקישור עמוק ולאחר מכן להחיל באמצעות applyActionCode כדי שהשינוי ייכנס לתוקף, דואר אלקטרוני כלומר שיש לאמת.