创建动态链接 (Unity)

您可以使用 Firebase Dynamic Links API 创建短动态链接或长动态链接。该 API 会使用几种可选的参数结构来构建链接。您也可以根据以前生成的长链接来创建短链接。Dynamic Links API 将生成一个如下所示的网址:

https://example.page.link/aSDf

准备工作

您必须先创建一个 Firebase 项目,并将 Firebase Unity SDK 软件包添加到您的 Unity 项目中,然后才能使用 Firebase 动态链接。

设置:

前提条件

Android

  • Unity 5.0 或更高版本
  • Android NDK 版本 10d 或更高版本

iOS

  • Unity 5.0 或更高版本
  • Xcode 8.0 或更高版本

如果您还没有 Unity 项目,可以下载一个快速入门示例,试用一下特定的 Firebase 功能。如果使用快速入门示例,请不要忘记从项目设置中获取软件包标识符,下一步中会用到该标识符。

在 Firebase 控制台中设置您的应用

要将 Firebase 添加到您的应用,您需要为该应用创建一个 Firebase 项目并下载其 Firebase 配置文件。

要创建 Firebase 项目,请执行以下操作:

  1. 访问 Firebase 控制台

  2. 点击“添加项目”,然后选择或输入项目名称

    • 如果您有与自己的应用关联的现有 Google 项目,请从项目名称下拉菜单中选择该项目。
    • 如果还没有现有的 Google 项目,请输入新的项目名称
  3. (可选)修改项目 ID

    Firebase 会自动为您的 Firebase 项目分配唯一 ID。此 ID 会显示在公开显示的 Firebase 服务中,例如:

    • 默认数据库网址 - your-project-id.firebaseio.com
    • 默认托管子域名 - your-project-id.firebaseapp.com
  4. 按照其余设置步骤操作,然后点击创建项目(如果您使用的是现有 Google 项目,则点击添加 Firebase)。

Firebase 会自动为您的 Firebase 项目配置资源。此过程通常需要几分钟。完成此过程后,您将进入 Firebase 控制台中 Firebase 项目的概览页面。

Android

  1. 点击将 Firebase 添加到您的 Android 应用,然后按设置步骤操作。如果您是导入现有 Google 项目,系统可能会自动执行这些操作,您只需下载配置文件即可。
  2. 看到提示时,输入应用的软件包名称。请务必输入应用使用的软件包名称;只有在将应用添加到 Firebase 项目时您才能进行此设置。
  3. 在此过程中,您要下载一个 google-services.json 文件。您可以随时重新下载此文件
  4. 添加初始化代码后,运行您的应用以便向 Firebase 控制台发送验证信息,证明您已成功安装 Firebase。
  5. 在 Firebase 控制台中,打开 Dynamic Links(动态链接)部分。
  6. 如果您尚未接受服务条款,也尚未为动态链接设置网域,请在看到提示时执行这些操作。

    如果您已经有了动态链接网域,请记下它。在以编程方式创建动态链接时,您需要提供动态链接网域。

iOS

  1. 点击将 Firebase 添加到您的 iOS 应用,然后按设置步骤操作。如果您是导入现有 Google 项目,系统可能会自动执行这些操作,您只需下载配置文件即可。
  2. 看到提示时,输入应用的软件包 ID。请务必输入应用在使用的软件包 ID;只有在将应用添加到 Firebase 项目时您才能进行此设置。
  3. 在此过程中,您要下载一个 GoogleService-Info.plist 文件。您可以随时重新下载此文件
  4. 添加初始化代码后,运行您的应用以便向 Firebase 控制台发送验证信息,证明您已成功安装 Firebase。
  5. 将从 Firebase 控制台下载的 GoogleService-Info.plist 拖动到 Unity 项目中的任意文件夹内。
  6. 在 Firebase 控制台中,打开 Dynamic Links(动态链接)部分。
  7. 如果您尚未接受服务条款,也尚未为动态链接设置网域,请在看到提示时执行这些操作。

    如果您已经有了动态链接网域,请记下它。在以编程方式创建动态链接时,您需要提供动态链接网域。

将 Firebase Unity SDK 添加到您的应用

  1. 下载 Firebase Unity SDK
  2. 移除选择 Assets > Import Package > Custom Package 菜单项。
  3. 从与您使用的 Unity 版本匹配的目录中导入 FirebaseDynamicLinks.unitypackage
    • Unity 5.x 及更早版本使用 .NET 3.x 框架,因此您需要导入 dotnet3/FirebaseDynamicLinks.unitypackage 软件包。
    • Unity 2017.x 及更新版本允许使用 .NET 4.x 框架。如果您的项目配置为使用 .NET 4.x,请导入 dotnet4/FirebaseDynamicLinks.unitypackage 软件包。
  4. 当出现 Import Unity Package 窗口时,点击 Import 按钮。

初始化 SDK

Android 版 Firebase Unity SDK 需要使用 Google Play 服务。您必须先将 Google Play 服务更新为最新版本,然后才能使用该 SDK。您应在应用开头处添加以下代码,以便检查 Google Play 服务版本是否符合 Firebase Unity SDK 的要求,并视情况将其更新为相应版本,然后再调用 SDK 中的任何其他方法。

Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
  var dependencyStatus = task.Result;
  if (dependencyStatus == Firebase.DependencyStatus.Available) {
    // Create and hold a reference to your FirebaseApp, i.e.
    //   app = Firebase.FirebaseApp.DefaultInstance;
    // where app is a Firebase.FirebaseApp property of your application class.

    // Set a flag here indicating that Firebase is ready to use by your
    // application.
  } else {
    UnityEngine.Debug.LogError(System.String.Format(
      "Could not resolve all Firebase dependencies: {0}", dependencyStatus));
    // Firebase Unity SDK is not safe to use here.
  }
});

构建您的应用

Android

  1. 依次选择 File > Build Settings 菜单选项。
  2. 选择 Platform 列表中的 Android
  3. 点击 Switch Platform,选择 Android 作为目标平台。
  4. 等待 Unity 状态栏右下角的旋转进度条(正在构建)图标停止旋转。
  5. 点击 Build and Run

iOS

  1. 依次选择 File > Build Settings 菜单选项。
  2. 选择 Platform 列表中的 iOS
  3. 点击 Switch Platform,选择 iOS 作为目标平台。
  4. 等待 Unity 状态栏右下角的旋转进度条(正在构建)图标停止旋转。
  5. 点击 Build and Run

使用 Firebase 控制台

如果您想生成一个动态链接(无论是出于测试目的,还是为了让您的营销团队轻松创建可以在社交媒体帖子等地方使用的链接),最简单的方法就是访问 Firebase 控制台并按照分步说明手动创建一个。

使用 Firebase Dynamic Links API

利用参数创建长动态链接

要创建动态链接,请创建一个 DynamicLinkComponents 对象,设置任何用于额外配置的可选成员,然后访问 LongDynamicLink 属性以获取链接网址。

下面这个极为简单的示例创建了一个指向 https://example.com/ 的长动态链接,此链接会在您的 Android 应用 com.example.android(在 Android 上)和 iOS 应用 com.example.ios(在 iOS 上)中打开:

var components = new Firebase.DynamicLinks.DynamicLinkComponents(
        // The base Link.
        new System.Uri("https://www.example.com/"),
        // The dynamic link domain.
        "example.page.link") {
  IOSParameters = new Firebase.DynamicLinks.IOSParameters("com.example.ios"),
  AndroidParameters = new Firebase.DynamicLinks.AndroidParameters(
      "com.example.android.package_name"),
};
// do something with: components.LongDynamicLink

创建短动态链接

要创建一个短动态链接,请将之前生成的长链接传递给 Firebase.DynamicLinks.GetShortLinkAsync,或采用与上面相同的方式构建 DynamicLinkComponents

GetShortLinkAsync 可以选择性地接受包含 PathLength 属性的额外 DynamicLinkOptions 配置参数;这样一来,您就可以控制链接的生成方式。生成短链接需要向 Firebase 后端发出网络请求,因此,GetShortLinkAsync 方法是异步执行的。 GetShortLinkAsync 会返回一个 Task<Firebase.DynamicLinks.ShortDynamicLink>

例如:

var options = new Firebase.DynamicLinks.DynamicLinkOptions {
    PathLength = DynamicLinkPathLength.Unguessable
};
Firebase.DynamicLinks.GetShortLinkAsync(components, options).ContinueWith((task) => {
  if (task.IsCanceled) {
    Debug.LogError("GetShortLinkAsync was canceled.");
    return;
  }
  if (task.IsFaulted) {
    Debug.LogError("GetShortLinkAsync encountered an error: " + task.Exception);
    return;
  }

  // Short Link has been created.
  Firebase.DynamicLinks.ShortLink link = task.Result;
  Debug.LogFormat("Generated short link {0}", link.Url));

  var warnings = new System.Collections.Generic.List<string>(link.Warnings);
  if (warnings.Count > 0) {
    // Debug logging for warnings generating the short link.
  }

上述示例使用了 lambda 表达式,该表达式在任务完成时触发。

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面