You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase Dynamic Links中buildShortLink与buildUrl方法未定义报错求助

解决Firebase动态链接中buildShortLink和buildUrl未定义的错误

问题原因

你遇到的报错是因为firebase_dynamic_links包的版本更新——旧版本中DynamicLinkParameters类的buildShortLink()和buildUrl()实例方法已被废弃,现在需要通过FirebaseDynamicLinks.instance调用对应的静态方法。

修正后的代码

import 'dart:js';

import 'package:firebase_dynamic_links/firebase_dynamic_links.dart';
import 'package:flutter/material.dart';
import 'package:myapp/providers/product_class.dart';
import 'package:url_launcher/url_launcher.dart';

class FirebaseDynamicLinkService{

  Future<String> _createDynamicLink(bool short, Product product) async {
    bool _isCreatingLink = false;

    final DynamicLinkParameters parameters = DynamicLinkParameters(
      uriPrefix: 'https://myapp.page.link',
      link: Uri.parse(
        'https://myapp/product?id=${product.documentID}',
      ),
      androidParameters: const AndroidParameters(
        packageName: 'com.example.myapp',
        minimumVersion: 125,
      ),
    );

    Uri url;
    if (short) {
      // 改用FirebaseDynamicLinks.instance调用buildShortLink静态方法
      final ShortDynamicLink shortLink =
          await FirebaseDynamicLinks.instance.buildShortLink(parameters);
      url = shortLink.shortUrl;
    } else {
      // 改用FirebaseDynamicLinks.instance调用buildUrl静态方法
      url = await FirebaseDynamicLinks.instance.buildUrl(parameters);
    }

    // 返回实际生成的链接字符串(原代码返回空字符串的问题一并修正)
    return url.toString();
  }

}

额外说明

  • 原代码中最后返回的是空字符串_linkMessage,修正后改为返回生成的动态链接,确保方法能输出有效结果。
  • 若你是参考旧文档/教程编写的代码,建议核对当前使用的firebase_dynamic_links版本的API说明,避免使用已废弃的方法。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 17:52:46