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
相关产品推荐
相关产品推荐

