Flutter中Firebase Dynamic Links白名单匹配错误的修复方案
问题
在Flutter项目中使用Firebase Dynamic Links时,教师创建班级生成带班级码(ref参数)的动态链接时触发错误:
FirebaseException ([firebase_dynamic_links/unknown] com.google.android.gms.common.api.ApiException: 400: We could not match param 'https://com.example.app?ref=7349558834' with whitelisted URL patterns in this Google project.
[https://support.google.com/firebase/answer/9021429
[https://support.google.com/firebase/answer/9021429])
目标链接为:https://com.example.app?ref=7349558834
生成链接的代码如下:
import 'package:firebase_dynamic_links/firebase_dynamic_links.dart'; class DynamicLinkProvider { Future<String> createLink(String refCode) async { final String url = "https://com.example.app?ref=$refCode"; final dynamicLinkParams = DynamicLinkParameters( link: Uri.parse(url), uriPrefix: "https://exampleapp.page.link/", androidParameters: const AndroidParameters( packageName: "com.example.app", minimumVersion: 0), ); final dynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams); return dynamicLink.shortUrl.toString(); } }
已在Firebase Dynamic Link的允许列表中添加多个URL规则,但仍无法匹配目标链接,请问还需添加什么规则才能成功生成该链接?
解决方案
你需要在Firebase控制台的Dynamic Links允许列表中添加以下规则之一:
- 精确匹配带
ref参数的链接:https://com.example.app?ref=*,这个规则会匹配所有https://com.example.app域名下带任意ref参数值的链接 - 宽松匹配域名下所有链接:
https://com.example.app/*,这个规则会匹配该域名下所有路径和参数组合的链接
同时注意:
- 确保规则格式正确,必须包含完整的
https://协议头,通配符*放置位置要准确 - 添加规则后等待5-10分钟,让Firebase完成配置同步
- 检查已添加的旧规则是否存在拼写错误、协议缺失或通配符位置错误,这些都可能导致匹配失败
内容的提问来源于stack exchange,提问作者Semih Kaya
相关产品推荐
相关产品推荐

