نقل البيانات من "الروابط الديناميكية" إلى "روابط التطبيقات" و"الروابط العامة"

يركز دليل نقل البيانات هذا على استخدام روابط التطبيقات الروابط العالمية، يمكنك اختياريًا استخدام استضافة Firebase لاستضافة ملفات الربط بموقع التطبيق.

تحل عملية نقل البيانات هذه محل ميزات "روابط Firebase الديناميكية" التالية:

الميزة روابط Firebase الديناميكية روابط التطبيقات / الروابط العامة
توجيه المستخدمين إلى المتجر الصحيح لأجهزتهم من خلال نقرة واحدة على رابط
قم بتزويد المستخدمين بمواصلة الرحلة بعد التنزيل تثبيت تطبيقك باستخدام رابط مؤجَّل لصفحة معيّنة في التطبيق
توفير تجربة سياقية للمستخدمين باستخدام محتوى مرتبط بصفحات في التطبيق في تطبيقك (عندما يكون مثبّتًا مسبقًا)
تقديم بيانات إحصائية ذات صلة بأحداث النقر على الرابط الديناميكية
توفير إمكانية إنشاء عناوين URL للروابط القصيرة

إذا كنت لا تزال بحاجة إلى ميزات أخرى من Firebase Dynamic Link لنقل البيانات غير المتوفرة في هذا الدليل، يمكنك الاطّلاع على سيناريوهات نقل البيانات الأخرى في الأسئلة الشائعة حول إيقاف الروابط الديناميكية التوثيق.

افترض أن لديك رابطًا ديناميكيًا في Firebase يبدو على النحو التالي:

مثال على الرابط الديناميكي
اسم الرابط مرحبًا بك في Example.com
رابط لصفحة في التطبيق https://example.web.app/welcome
تطبيق Android com.example.android
تطبيق Apple com.example.ios
رابط ديناميكي طويل https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos
رابط ديناميكي قصير https://example.page.link/m9Mm

الهدف من دليل نقل البيانات هذا هو استبدال "روابط Firebase الديناميكية" على النحو التالي:

https://example.page.link/m9Mm

باستخدام روابط لصفحات في التطبيق أو رابط عام على النحو التالي:

https://your-project-domain.web.app/welcome

لاحظ أن رابط التطبيق أو الرابط العام لصفحة في التطبيق سيوفر المتابعة إلى المستخدمين:

  • هو رابط لصفحة في التطبيق يمكن للمستخدم النقر عليه لفتح تطبيقك بعد تثبيته.
  • استمرار لرحلة المستخدم تنقلهم إلى جزء معين تطبيقك عند فتحه

ومع ذلك، لن يوفّر رابط التطبيق / الرابط العام لصفحة معيّنة في التطبيق ما يلي: للمستخدمين (وهو ما كانت تفعله روابط Firebase الديناميكية في السابق):

  • نقل المستخدمين إلى المتجر الصحيح لأجهزتهم لإجراء عملية التنزيل تثبيت تطبيقك
  • توفير استمرار لتجربة المستخدم بعد التنزيل، تثبيت التطبيق وفتحه لأول مرة

لاحِظ الاختلافات في سلوك ووظائف هذه التطبيقات الروابط / الروابط العامة مقارنةً بروابط Firebase الديناميكية التي تم استدعاؤها في الجدول أعلاه.

قبل البدء

تستخدم "روابط Firebase الديناميكية" روابط التطبيقات (على Android) و"الروابط العامة" (مفعَّلة) iOS) في تنفيذها الأساسي لتوفير روابط لمواضع معيّنة وظيفة بعد تثبيت التطبيق.

يوضِّح هذا الدليل كيفية إنشاء "روابط التطبيق" و"الروابط العامة" الخاصة بك. باستخدام "استضافة Firebase" لاستبدال هذا الجزء من الوظائف التي يوفرها روابط Firebase الديناميكية أثناء نقل روابط Firebase الديناميكية إلى الميزة الجديدة حلّ نقل بيانات روابط التطبيقات أو الروابط العامة

ستحتاج إلى المعلومات التالية لإكمال نقل البيانات:

  • روابط Firebase الديناميكية التي تنوي نقلها
  • مَعلمات عناوين URL لرابط صفحة معيّنة في التطبيق والمضمّنة في الروابط الديناميكية
  • النطاق الذي تخطط لاستخدامه بدلاً من النظام الديناميكي السابق في Firebase نطاق الروابط (إن وُجد)

يمكنك استخدام دليل تصدير البيانات الوصفية للروابط الديناميكية. لتصدير البيانات الوصفية الحالية للرابط الحصول على المعلومات المذكورة أعلاه.

نظرة عامة على خطوات نقل البيانات

  1. توفير نطاق جديد (إذا لم يكن لديك نطاق تريد استخدامه) لاستضافة ملفات ضبط رابط التطبيق / الرابط العام باستخدام Firebase الاستضافة

  2. إنشاء واستضافة ملفات إعداد رابط التطبيق / الرابط العام على نطاق الاستضافة الخاص بك.

  3. إنشاء روابط تطبيقات أو روابط عامة جديدة تتطابق مع مخطط روابط الصفحات في التطبيق المستخدَمة في روابط Firebase الديناميكية

  4. حدِّث تطبيقات Android / iOS ورمز التطبيق لتلقّي روابط لمواضع معيّنة.

  5. اختبار عمليات دمج "روابط التطبيقات" أو "الروابط العامة"

  6. استبدال روابط Firebase الديناميكية المنشورة أو المشتركة بروابط التطبيقات و"الروابط العامة".

تتمثل الخطوة الأولى سيكون شائعًا في كل من عمليات نقل بيانات روابط التطبيقات أو الروابط العامة. تشير رسالة الأشكال البيانية ستختلف البقية حسب نظام التشغيل، لذا انتقل إلى القسم أدناه بناءً على النظام الأساسي الذي تريد نقله أولاً.

اختيار نطاق

الخطوة الأولى هي اختيار النطاق المطلوب استخدامه لميزة "روابط التطبيق" / "الروابط العامة". سيكون هذا هو النطاق الذي سيتم استخدامه للروابط الجديدة. ستشاركها مع المستخدمين.

في حال استخدام استضافة Firebase، مشروع النطاقات الفرعية بالتنسيق your-project-domain.web.app أو تتم إدارة حسابات your-project-domain.firebaseapp.com تلقائيًا بدون أي تكلفة. إِنْتَ يمكنك اختياريًا استخدام نطاق خاص مع استضافة Firebase أو بدونها لاستضافة ملفات إعداد رابط التطبيق / الرابط العام أيضًا.

إعداد استضافة Firebase

بعد ذلك، ستحتاج إلى إعداد مثيل استضافة Firebase وضبطه

بحلول الوقت الذي تنتهي فيه من إعداد مثيل استضافة Firebase، ستتوفر لك نطاق مشابه لـ your-project-domain.web.app`، أو نطاق خاص إذا كنت تفضل ذلك.

لاستخدام روابط التطبيقات، يجب استضافة ملف إعداد يساعد إنشاء ارتباط آمن بين النطاق المستخدَم في الروابط التطبيق. بالنسبة إلى روابط التطبيقات، هذا هو ملف assetlinks.json.

خطوات إنشاء ملف assetlinks.json واستضافتها

يسمح لنا ملف assetlinks.json بتقديم قائمة بالتطبيقات المعتمَدة التي يمكننا معالجة محتويات نطاق الويب الذي سنستخدمه لارتباطات التطبيقات. تشير رسالة الأشكال البيانية يجب أن يكون ملف assetlinks.json نفسه مستضافًا في جذر نطاق الويب. أسفل المسار: /.well-known.

اتّبِع الخطوات أدناه لإكمال هذه الإعدادات:

  1. أنشئ المجلد ".well-known" ضمن المجلد العلني في الدليل الجذري لاستضافة Firebase.

  2. أنشئ ملفًا باسم "assetlinks.json" ضمن المجلد ".well-known".

  3. انسخ المحتوى التالي إلى ملف assetlinks.json، مع مراعاة معنى كل حقل أدناه:

    [{
      "relation": ["delegate_permission/common.handle_all_urls"],
      "target": {
        "namespace": "android_app",
        "package_name": "com.example.android",
        "sha256_cert_fingerprints":
          ["01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF"]
      }
    }]
    
    • namespace - يشير إلى اسم التطبيق الذي تريد تقديمه
    • package_name: يشير إلى رقم تعريف التطبيق الذي تم تعريفه في قسم ملف build.gradle
    • sha256_cert_fingerprints: يشير إلى بصمة الإصبع SHA256 ملف تخزين مفاتيح التشفير الذي تستخدمه لتوقيع التطبيق.

    يمكنك استخدام ملف debug.keystore الذي يستخدمه "استوديو Android" لإنشاء سجل sha256_cert_fingerprints لأغراض تصحيح الأخطاء. يمكنك العثور على ملف في /Users/<username>/.android/debug.keystore على نظامي التشغيل Mac وLinux C:\Users\<username>\.android\debug.keystore على نظام التشغيل Windows

    ومن ملف تخزين المفاتيح هذا، يمكنك جلب قيمة SHA256 باستخدام أداة keytool.

    ارجع إلى هذا القسم من مستندات "روابط التطبيقات" للحصول على المزيد من التعليمات حول إكمال هذه الخطوة.

    بدلاً من ذلك، يمكنك أيضًا استخدام مساعد روابط التطبيقات في Android Studio لإنشاء محتويات ملف assetlinks.json تهيئة تطبيقك للتعامل مع روابط التطبيقات.

  4. عدِّل ملف firebase.json لفهرسة الملف لاستضافةه.

    "headers": [
      {
        "source": "/.well-known/assetlinks.json",
        "headers": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ]
      }
    ]
    
  5. بعد أن أصبح ملف assetlinks.json صالحًا، شغِّل firebase deploy: واستضافة التغييرات.

    يُرجى العلم أنّه يجب توفُّر واجهة سطر الأوامر في Firebase. لتشغيل أمر النشر أعلاه.

    firebase deploy --only hosting
    
  6. يمكنك التحقق من ملف assetlinks.json بالانتقال إلى https://your-project-domain.web.app/.well-known/assetlinks.json

في هذه الخطوة، ستُعيد إنشاء الروابط لصفحات في التطبيق من "روابط Firebase الديناميكية". باستخدام عناوين URL عادية لروابط صفحات معيّنة تتطابق مع النطاق الجديد الذي أنشأته لتطبيقك الروابط.

على سبيل المثال، لنفترض أنّ لديك رابط Firebase الديناميكي التالي:

مثال على الرابط الديناميكي
اسم الرابط مرحبًا بك في Example.com
رابط لصفحة في التطبيق https://example.web.app/welcome
تطبيق Android com.example.android
تطبيق Apple com.example.ios
رابط ديناميكي طويل https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos
رابط ديناميكي قصير https://example.page.link/m9Mm

وفي هذه الحالة، يمكنك استخراج مَعلمة رابط لصفحة معيّنة. https://example.web.app/welcome وستستخدم الآن هذا الرابط كرابط التطبيق مَعلمة لتطبيقك.

عليك تكرار هذه العملية لكلّ رابط ديناميكي في Firebase تريد الانتقال إلى استخدام روابط التطبيقات أو الروابط العامة، وتكرار الروابط لمواضع معيّنة الذي استخدمته.

على سبيل المثال، يُرجى الاطّلاع على المجموعة التالية من "روابط Firebase الديناميكية" الروابط القصيرة ومَعلمات الروابط لصفحات في التطبيق وقيم الروابط لصفحات معيّنة التي تم نقلها:

رابط مختصر مَعلمة رابط لصفحة معيّنة رابط لصفحة في التطبيق تم نقله
yourapp.page.link/welcome https://example.com/welcome yourapp.web.app/welcome
yourapp.page.link/c7sn https://example.com/main/?p=23&t=1 yourapp.web.app/main/?p=23&t=1
yourapp.page.link/social https://example.com/friendinvite/?add=1 yourapp.web.app/friendinvite/?add=1

بعد ذلك، ستحتاج إلى استبدال أي مثيلات من روابط Firebase الديناميكية التي نشر أو مشاركة هذه الروابط مع الروابط الجديدة التي تم نقلها إلى صفحات معيّنة، وذلك لكي ينقر المستخدمون على روابط التطبيقات هذه بدلاً من روابط Firebase الديناميكية السابقة.

تتمثل الخطوة التالية بعد تحديد مجال، وهي اختيار مخطط الربط لموضع معيّن نقل "روابط Firebase الديناميكية" إلى "روابط التطبيق" من أجل تحديث تطبيق Android ورمز التطبيق لتلقي الروابط الجديدة لصفحات في التطبيق.

ننصحك باتباع كامل مستندات روابط التطبيقات هنا أو بدلاً من ذلك دليل "استوديو Android" على إعداد تطبيقك للتعامل مع الروابط المؤدية إلى صفحات في التطبيق، ولكن تشمل الخطوات الرئيسية ما يلي:

  1. تحديد الأنشطة التي يجب أن تعالج الروابط لصفحات معيّنة ذات الصلة
  2. إضافة فلتر أهداف لهذه الأنشطة في ملف AndroidManifest.xml الملف
  3. تلقي الرابط لموضع معين في أنشطتك" رمز التطبيق

لنفترض أنك أردت استخدام MainActivity لمعالجة بعض . ولإجراء ذلك، ستحتاج إلى إضافة فلتر الأهداف التالي إلى MainActivity في ملف AndroidManifest.xml:

<activity android:name=".MainActivity"
   android:exported="true">
   <intent-filter>
       <action android:name="android.intent.action.MAIN" />
       <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
   <intent-filter android:autoVerify="true">
       <action android:name="android.intent.action.VIEW" />
       <category android:name="android.intent.category.DEFAULT" />
       <category android:name="android.intent.category.BROWSABLE" />
       <data android:host="example.web.app" android:scheme="http"
           android:pathPrefix="/welcome" />
       <data android:host="example.web.app" android:scheme="https"
           android:pathPrefix="/welcome" />
   </intent-filter>
</activity>

في هذه الخطوة، تُحدد أن MainActivity هي وجهة التعامل مع الروابط لمواضع معينة من النطاق wxample.web.app ويتضمن /مرحبًا ببادئة المسار. لاحظ أنك ستحتاج أيضًا إلى تحديد android:autoVerify="true" تسمح لك بتعيين تطبيقك هو المعالج التلقائي لهذا النوع المحدّد من الروابط.

أخيرًا، ستحتاج إلى إضافة الرمز في MainActivity لاسترداد بيانات الروابط لمواضع معيّنة وتستخدم ذلك في تحسين تجربة الروابط لمواضع معيّنة في تطبيقك. هذا النمط يشبه المنطق الذي ربما تكون قد رمّزته بالفعل في تطبيقك عند دمج باستخدام روابط Firebase الديناميكية

override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  setContentView(R.layout.main)

  val  data: Uri? = intent?.data

  val toast = Toast.makeText(this, data, duration)
  toast.show()
}

يمكنك اختبار روابط التطبيق التي أنشأتها للتو عن طريق تشغيل تطبيقك على الجهاز الفعلي أو في محاكي Android

يجب إنشاء رابط قابل للنقر باستخدام النطاق الذي تم إعداده لتطبيقك. الروابط ثم النقر على هذا الرابط لضمان فتحه على تطبيقك تنقلك إلى النشاط المقصود.

بدلاً من ذلك، يمكنك أيضًا اختبار دمج "روابط التطبيق" باستخدام مساعد روابط التطبيقات في Android Studio، أو استخدم الأمر التالي للحصول على عنوان URL لرابط التطبيق الذي للتأكّد من أنّه يشغِّل النشاط المطابق بشكل صحيح:

adb shell am start -a android.intent.action.VIEW -d <your_deep_link_url>

ستتمثّل الخطوة الأخيرة في عملية نقل البيانات في استبدال البيانات المنشورة أو المشتركة. روابط Firebase الديناميكية مع روابط التطبيقات كلما أمكن، ومواصلة استخدام ميزة "روابط التطبيق" من الآن فصاعدًا

سيختلف إكمال هذه الخطوة حسب مكان وكيفية تم نشر روابط Firebase الديناميكية، ولكن لمساعدتك في تتبع الروابط المتوفرة، يمكنك تصدير البيانات الوصفية الحالية لرابط Firebase الديناميكي. عرض دليل تصدير البيانات الوصفية للروابط الديناميكية.

لاستخدام الروابط العامة، يجب استضافة ملف إعداد يساعد إنشاء ارتباط آمن بين النطاق المستخدَم في الروابط التطبيق. بالنسبة إلى ميزة "الروابط العامة"، هذا هو ملف apple-app-site-association (أيضًا المعروف باسم ملف AASA).

خطوات إنشاء واستضافة ملف الربط بتطبيق apple-app-site-association

يتيح لنا ملف AASA تقديم قائمة بالتطبيقات المعتمَدة التي يمكنها معالجة محتويات نطاق الويب الذي سنستخدمه للروابط العامة. ملف AASA يجب أن يكون الملف نفسه مستضافًا في جذر نطاق الويب ضمن المسار: /.well-known.

اتّبِع الخطوات أدناه لإكمال هذه الإعدادات:

  1. إنشاء ".well-known" ضمن المجلد العلني في الدليل الجذري لاستضافة Firebase.

  2. أنشئ ملفًا باسم "apple-app-site-association" تحت " .well-known" المجلد.

  3. انسخ المحتوى التالي إلى ملف apple-app-site-association. مع مراعاة معنى كل حقل أدناه:

    {
      "applinks": {
        "apps": [],
        "details": [
          {
            "appId": "$TEAM_ID.com.firebase.UniversalLinks",
            "paths": [
              "NOT /_/*",
              "/*"
            ]
          }
        ]
      }
    }
    
    • $team_ID.BundleId - اسم التطبيق المؤهل بالكامل والمصرح له التعامل مع الروابط
  4. عدِّل ملف firebase.json لفهرسة الملف لاستضافةه.

    "headers": [
      {
        "source": "/.well-known/apple-app-site-association",
        "headers": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ]
      }
    ]
    
  5. الآن بعد أن أصبح لدينا ملف AASA، قم بنشر برنامج firebase لاستضافة التغييرات.

  6. يمكنك إثبات صحة ملف AASA من خلال الانتقال إلى https://your-project-domain.web.app/.well-known/app-app-site-association

في هذه الخطوة، ستُعيد إنشاء الروابط لصفحات في التطبيق من "روابط Firebase الديناميكية". باستخدام عناوين URL عادية لروابط صفحات معيّنة تتطابق مع النطاق الجديد الذي أنشأته "الروابط العامة".

على سبيل المثال، لنفترض أنّ لديك رابط Firebase الديناميكي التالي:

مثال على الرابط الديناميكي
اسم الرابط مرحبًا بك في Example.com
رابط لصفحة في التطبيق https://example.web.app/welcome
تطبيق Android com.example.android
تطبيق Apple com.example.ios
رابط ديناميكي طويل https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos
رابط ديناميكي قصير https://example.page.link/m9Mm

في هذه الحالة، يمكنك استخراج مَعلمة رابط لصفحة معيّنة، وهي أي https://example.web.app/welcome وستستخدم الآن هذه الصفحة معلمة الرابط لتطبيقك.

عليك تكرار هذه العملية لكلّ رابط ديناميكي في Firebase تريد الانتقال إلى استخدام روابط التطبيقات أو الروابط العامة، وتكرار الروابط لمواضع معيّنة الذي استخدمته.

على سبيل المثال، يُرجى الاطّلاع على المجموعة التالية من "روابط Firebase الديناميكية" الروابط القصيرة ومَعلمات الروابط لصفحات في التطبيق وقيم الروابط لصفحات معيّنة التي تم نقلها:

رابط مختصر مَعلمة رابط لصفحة معيّنة رابط لصفحة في التطبيق تم نقله
yourapp.page.link/welcome https://example.com/welcome yourapp.web.app/welcome
yourapp.page.link/c7sn https://example.com/main/?p=23&t=1 yourapp.web.app/main/?p=23&t=1
yourapp.page.link/social https://example.com/friendinvite/?add=1 yourapp.web.app/friendinvite/?add=1

بعد ذلك، ستحتاج إلى استبدال أي مثيلات من روابط Firebase الديناميكية التي نشر أو مشاركة هذه الروابط مع الروابط الجديدة التي تم نقلها إلى صفحات معيّنة، وذلك لكي ينقر المستخدمون على هذه الروابط العامة بدلاً من روابط Firebase الديناميكية السابقة.

تتمثل الخطوة التالية بعد تحديد مجال، وهي اختيار مخطط الربط لموضع معيّن لنقل "روابط Firebase الديناميكية" إلى "الروابط العامة"، سيتم تحديث نظام iOS رمز التطبيق ورمز التطبيق لتلقي الروابط الجديدة لصفحات في التطبيق.

ننصحك باتباع كامل مستندات "الروابط العامة" هنا على إعداد تطبيقك للتعامل مع الروابط المؤدية إلى صفحات في التطبيق، ولكن تشمل الخطوات الرئيسية ما يلي:

  1. يجب تعديل إعدادات مشروعك ليتمكّن تطبيقك من معالجة الصفحات في التطبيق. روابط من النطاق الذي تم إنشاؤه حديثًا

  2. تلقّي رابط الصفحة في رمز تطبيقك

لتعديل إعدادات مشروعك لتمكين تطبيقك من التعامل مع الصفحات فستحتاج إلى إضافة نطاق مرتبط إضافي إلى مشروعك xCode للنطاق الذي تخطط الآن لاستخدامه لاستضافة apple-app-site- linked support.

ويمكن إجراء ذلك من خلال ما يلي:

  1. جارٍ فتح Xcode
  2. اختيار مشروعك في أداة التنقّل في الملفات
  3. الانتقال إلى موقع التوقيع علامة التبويب "الإمكانات" في إعدادات مشروعك
  4. الانتقال للأسفل إلى قسم "النطاقات المرتبطة"
  5. النقر على الزر + لإضافة نطاق إضافي إلى مشروعك في بالتنسيق "applinks:".

أخيرًا، يجب تحديث رمز التطبيق لتتمكّن من تلقّي الروابط الواردة لصفحات في التطبيق.

لتنفيذ هذا الإجراء، عليك أولاً تحديث ملف AppDelegate.swift للرد على ملف رابط عام عن طريق إضافة الرمز التالي:

func application(_ application: UIApplication, continue userActivity: NSUserActivity,
                 restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
  AppDelegate.showReceivedUrl(userActivity: userActivity);
  return true
}

static func showReceivedUrl(userActivity: NSUserActivity) {
  if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
    let url = userActivity.webpageURL!
    print(url.absoluteString)
}

يلغي الرمز البرمجي أعلاه طريقة استدعاء الرابط العام ويسجّل إذا كان موجودًا.

سنستدعي الآن طريقة showReceivedUrl نفسها من فئة SceneDelegate وكذلك إذا كان التطبيق مفتوحًا بالفعل عند نقر المستخدم على الرابط العام، فإن معاودة الاتصال للرابط العام داخل SceneDelegate سيكون والذي يتم استدعاؤه.

func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
  AppDelegate.showReceivedUrl(userActivity: userActivity)
}

يمكنك اختبار الروابط العامة التي أنشأتها للتو عن طريق تشغيل تطبيقك في جهاز فعلي أو جهاز محاكاة.

يجب إنشاء رابط قابل للنقر باستخدام النطاق الذي تم إعداده من أجل "الروابط العامة"، ثم انقر على هذا الرابط للتأكد من فتحه على التطبيق وينقلك إلى الشاشة المقصودة في التطبيق.

التوافق مع إعلانات البانر الذكية للتطبيقات

نوصي بشدة باستخدام إعلانات البانر الذكية للتطبيقات كطريقة لتزويد المستخدمين بتجربة مماثلة لميزات Firebase Dynamic الروابط.

باستخدام Smart App Banners، سيتم نقل المستخدمين إلى App Store لتطبيقك. إذا لم يكن تطبيقك مثبّتًا على أجهزتهم يمكنك أيضًا يمكنك اختياريًا ضبط معلمة لتمريرها إلى تطبيقك بعد تنزيله وتثبيت التطبيقات لتتيح للمستخدمين مواصلة تجربتهم. في حال حذف تطبيقك مثبت من قبل، فسيفتح تمرير المعلمة إلى للمساعدة في توجيه المستخدم إلى المحتوى المناسب استنادًا إلى "التطبيق الذكي" إعلان بانر الذي نقروا عليه

ستتمثّل الخطوة الأخيرة في عملية نقل البيانات في استبدال البيانات المنشورة أو المشتركة. روابط Firebase الديناميكية (الروابط العامة) كلما أمكن ذلك، والمتابعة باستخدام "الروابط العامة" من الآن فصاعدًا.

سيختلف إكمال هذه الخطوة حسب مكان وكيفية تم نشر روابط Firebase الديناميكية.

لمساعدتك في تتبُّع روابط Firebase الديناميكية الحالية التي سيتم نقلها، سنُنشئ نشر دليل حول كيفية تصدير البيانات الوصفية للروابط القصيرة من Firebase الروابط الديناميكية. يُرجى زيارة موقعنا الإلكتروني مستند الأسئلة الشائعة حول إيقاف الروابط الديناميكية للحصول على المزيد من التحديثات.