【问题标题】:React-Native - com.google.android.gms.common.api.ApiException: 400: Cannot shorten a short Dynamic LinkReact-Native - com.google.android.gms.common.api.ApiException:400:无法缩短短动态链接
【发布时间】:2020-04-01 11:05:08
【问题描述】:

我正在开发我的 react native 动态链接功能。

我已尝试使用以下代码创建链接:

const generatedDynamicLink = await firebase.dynamicLinks().buildLink({
            link: `https://test.page.link/groupinvite/name=test`,
            domainUriPrefix: `https://test.page.link/groupinvite`,
            android: {
                packageName: 'com.test',
            },
            ios: {
                bundleId: 'com.test',
                appStoreId: '1546898245',
            },
        });

上述方法效果很好。

但是,它给了我一个长链接,比如, https://test.page.link//guestinvite?apn=com.test&ibi=com.test&isi=1498742044&link=https%3A%2F%2Ftest.page.link/%2Fguestinvite%2Fname%3Dtest

所以为了缩短链接,我将 firebase.dynamicLinks().buildLink(....) 替换为“firebase.dynamicLinks().shortLink({.....},"SHORT")” 但它给我一个错误,例如,

错误:[dynamicLinks/build-failed] com.google.android.gms.common.api.ApiException:400:无法缩短短动态链接:

那么任何人都可以建议我一个解决方法来创建一个短链接,如“com.test/guestinvite/abdgsyd”吗?

另外,如何轻松获取初始链接。

目前我正在使用以下链接,但我无法从链接中获取查询参数“名称”。

componentDidMount() {
    dynamicLinks().getInitialLink().then((initialLink)=>{
    console.log('initialLink : ', initialLink.url);
    });
  }

我正在使用以下依赖项:

"@react-native-firebase/app": "^6.3.4",
"@react-native-firebase/dynamic-links": "^6.3.4",

谢谢。

【问题讨论】:

    标签: react-native react-native-android react-native-ios firebase-dynamic-links react-native-firebase


    【解决方案1】:

    按照this 教程,他们使用:

    import dynamicLinks from '@react-native-firebase/dynamic-links';
    
    const link = await dynamicLinks().buildLink({
      link: 'https://invertase.io',
      domainUriPrefix: 'https://xyz.page.link',
      analytics: {
        campaign: 'banner',
      }
    });
    

    在你的情况下,它会是:

    import dynamicLinks from '@react-native-firebase/dynamic-links';
    
    const generatedDynamicLink = await dynamicLinks().buildLink({
      link: `https://test.page.link/groupinvite/name=test`,
      domainUriPrefix: `https://test.page.link/groupinvite`,
      android: {
          packageName: 'com.test',
      },
      ios: {
          bundleId: 'com.test',
          appStoreId: '1546898245',
      }
    });
    

    我不知道这是否可行,但我希望如此。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多