如何在Expo Go中测试Firebase动态链接并获取参数?
在Expo Go中测试Firebase动态链接并获取参数
核心说明
无需额外特殊工具,用Expo Go真机或模拟器都能完成测试,只要保证设备和开发环境在同一网络,且Expo Go已关联你的项目即可。
步骤1:配置关联域名
在Firebase控制台确认动态链接域名(如yourapp.page.link)可用后,在Expo项目的app.json或app.config.js中添加关联域名配置:
{ "expo": { "associatedDomains": ["applinks:yourapp.page.link"] } }
修改后重启Expo开发服务器,让配置生效。
步骤2:用expo-linking解析参数
直接借助expo-linking的API就能获取并解析动态链接参数,无需额外引入Firebase SDK,示例代码如下:
import { useEffect, useState } from 'react'; import { Text, View } from 'react-native'; import * as Linking from 'expo-linking'; export default function App() { const [linkParams, setLinkParams] = useState(null); useEffect(() => { // 监听应用从后台被链接唤醒的场景 const subscription = Linking.addEventListener('url', handleOpenURL); // 初始化获取应用启动时的链接 Linking.getInitialURL().then(url => { url && handleOpenURL({ url }); }); return () => subscription.remove(); }, []); const handleOpenURL = ({ url }) => { // 解析链接中的参数 const parsedData = Linking.parse(url); // 动态链接的查询参数会存在parsedData.queryParams中 setLinkParams(parsedData.queryParams); }; return ( <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}> <Text>动态链接参数:</Text> {linkParams && <Text>{JSON.stringify(linkParams, null, 2)}</Text>} </View> ); }
步骤3:测试方式
真机测试(推荐)
- 手机安装Expo Go并扫码加载你的项目。
- 用手机浏览器或聊天软件打开Firebase动态链接,点击后会跳转至Expo Go,此时就能看到参数展示。
- iOS首次跳转需确认授权打开Expo Go,直接允许即可。
模拟器测试
- 在模拟器中打开Expo Go并加载项目。
- 终端执行对应命令发送链接到模拟器:
- iOS模拟器:
xcrun simctl openurl booted "https://yourapp.page.link/你的测试链接" - Android模拟器:
adb shell am start -W -a android.intent.action.VIEW -d "https://yourapp.page.link/你的测试链接"
- iOS模拟器:
- 模拟器会自动打开Expo Go并触发参数解析逻辑。
常见问题排查
- 链接无法跳转Expo Go:检查
app.json中associatedDomains的格式是否正确,必须以applinks:开头,且域名与Firebase动态链接域名完全一致。 - 无法获取参数:确认Firebase动态链接的深层链接配置了带查询参数的URL(如
https://yourapp.com/test?param=123),参数需放在查询字符串中。
内容的提问来源于stack exchange,提问作者Sander van Maastricht
相关产品推荐
相关产品推荐

