You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何将JavaScript代码从Google URL短链迁移至Firebase动态链接

嘿,我来帮你搞定这个迁移问题~ 先给你明确核心结论:Google JavaScript客户端API并不直接支持Firebase动态链接的生成,你需要切换到Firebase官方的JavaScript SDK,或者直接调用Firebase动态链接的REST API来实现短链生成。下面给你详细的迁移步骤和代码示例:

迁移到Firebase动态链接的具体方案

1. 前期准备

首先得在Firebase控制台完成基础配置:

  • 创建或关联你的现有项目,启用「动态链接」服务
  • 设置你的动态链接域名(比如https://your-custom-domain.page.link,Firebase会提供默认域名,也可以绑定自定义域名)
  • 获取你的Firebase项目Web配置(在控制台→项目设置→添加应用→Web应用,就能拿到包含apiKeyprojectId等信息的配置对象)

2. 推荐方案:使用Firebase JavaScript SDK

这是最官方、最易维护的方式,步骤如下:

第一步:引入Firebase SDK

可以通过CDN快速引入(也可以用npm安装):

<!-- 引入Firebase核心库和动态链接模块 -->
<script src="https://www.gstatic.com/firebasejs/9.23.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/9.23.0/firebase-dynamic-links.js"></script>

第二步:初始化Firebase应用

替换成你自己的Firebase Web配置:

const firebaseConfig = {
  apiKey: "你的Firebase API Key",
  authDomain: "你的项目ID.firebaseapp.com",
  projectId: "你的项目ID",
  storageBucket: "你的项目ID.appspot.com",
  messagingSenderId: "你的Sender ID",
  appId: "你的App ID"
};

// 初始化Firebase
firebase.initializeApp(firebaseConfig);

第三步:生成动态短链

替换掉原来调用Google URL短链服务的代码,改成这个:

// 异步函数:传入长链接,返回生成的短链
async function generateFirebaseShortLink(longUrl) {
  try {
    // 配置动态链接参数
    const linkParams = {
      dynamicLinkInfo: {
        domainUriPrefix: "你的动态链接域名", // 比如https://yourpage.page.link
        link: longUrl, // 需要缩短的原始长链接
        // 可选:添加平台跳转规则、社交分享信息等
        androidInfo: {
          androidPackageName: "com.your.android.app" // 你的安卓包名
        },
        iosInfo: {
          iosBundleId: "com.your.ios.app" // 你的iOS包名
        }
      },
      suffix: {
        option: "SHORT" // 生成短链,可选UNGUESSABLE(更长但防猜测)
      }
    };

    // 调用Firebase动态链接API生成短链
    const shortLink = await firebase.dynamicLinks().createDynamicLink(linkParams);
    console.log("生成的Firebase短链:", shortLink);
    return shortLink;
  } catch (error) {
    console.error("短链生成失败:", error);
    throw error;
  }
}

// 调用示例
generateFirebaseShortLink("https://your-long-url.com/some/long/path");

3. 备选方案:直接调用REST API

如果不想引入Firebase SDK,也可以直接发HTTP请求到Firebase的REST端点:

async function generateShortLinkViaREST(longUrl) {
  const apiKey = "你的Firebase API Key";
  const domainUriPrefix = "https://yourpage.page.link";

  const requestBody = {
    dynamicLinkInfo: {
      domainUriPrefix: domainUriPrefix,
      link: longUrl
    },
    suffix: {
      option: "SHORT"
    }
  };

  try {
    const response = await fetch(`https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=${apiKey}`, {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify(requestBody)
    });

    const data = await response.json();
    if (data.shortLink) {
      console.log("生成的短链:", data.shortLink);
      return data.shortLink;
    } else {
      throw new Error(data.error.message);
    }
  } catch (error) {
    console.error("短链生成失败:", error);
    throw error;
  }
}

几个关键注意点

  • 确保你的Firebase项目已经正确启用动态链接服务,并且域名配置有效
  • 如果用客户端生成短链,要在Google Cloud控制台给你的API Key添加firebasedynamiclinks.googleapis.com的访问权限(在API和服务→凭据→你的API Key→API限制里设置)
  • SDK版本可以根据你的项目需求调整,上面用的是v9版本的写法,如果你习惯v8的命名空间写法也可以对应调整

内容的提问来源于stack exchange,提问作者rcauvin

火山引擎 最新活动