如何以编程方式在 Firebase 中创建动态链接?迅速

Posted

技术标签:

【中文标题】如何以编程方式在 Firebase 中创建动态链接?迅速【英文标题】:How to create a Dynamic link in Firebase programmatically? Swift 【发布时间】:2018-05-28 16:49:45 【问题描述】:

我想创建一个 firebase 动态,但我在 components.shorten 中找不到错误

操作无法完成。长链接不可解析。

我正在关注 firebase 文档,但我可以获得预期的结果。

 @IBAction func createGroupAction(_ sender: Any) 

    let dynamicLinkDomain = "https://a5481.app.goo.gl/"
    let appBundleID = "com.vividapartments.myStr.com"

    let params:[String : String] = [
        "ibi": appBundleID,
        "isi": "1222420082",
        "efr":"1",
        "groupID":"-LDSfWKKbWjyrXiFljT3",
        "chatID":"-LDSfWKMbm9mSE2a6EIe"
    ]

    // general link params
    let urlParams = params.flatMap ( (key,value) -> String in
        return "\(key)=\(value)"
    ).joined(separator: "&")


    guard let deepLink = URL(string:"https://www.mystr.com/groups?\(urlParams)") else return

    print("deepLink is \(deepLink)")
    //prints:
    //deepLink is https://www.mystr.com/groups?isi=1222420082&chatID=-LDSfWKMbm9mSE2a6EIe&efr=1&ibi=com.vividapartments.myStr.com&groupID=-LDSfWKKbWjyrXiFljT3

    let components = DynamicLinkComponents(link: deepLink, domain: dynamicLinkDomain)

    let iosParams = DynamicLinkIOSParameters(bundleID: appBundleID)
    iOSParams.minimumAppVersion = "1.5"
    components.iOSParameters = iOSParams

    //1. Build the dynamic long link
    let longlLink = components.url
    print("The long link is \(longlLink!)")
    //prints:
     //The long link is https://https://a5481.app.goo.gl//?link=https%3A%2F%2Fwww%2Emystr%2Ecom%2Fgroups%3Fisi%3D1222420082%26chatID%3D%2DLDSfWKMbm9mSE2a6EIe%26efr%3D1%26ibi%3Dcom%2Evividapartments%2EmyStr%2Ecom%26groupID%3D%2DLDSfWKKbWjyrXiFljT3&ibi=com%2Evividapartments%2EmyStr%2Ecom&imv=1%2E5

    //Set the length of a short Dynamic Link
    let options = DynamicLinkComponentsOptions()
    options.pathLength = .unguessable
    components.options = options

    //2. Or create a shortened dynamic link
    components.shorten  (shortURL, warnings, error) in
        if let error = error 
            print("error is \(error.localizedDescription)")
            //prints:
            //error is The operation couldn’t be completed. Long link is not parsable: https://https://a5481.app.goo.gl//?link=https%3A%2F%2Fwww%2Emystr%2Ecom%2Fgroups%3Fisi%3D1222420082%26chatID%3D%2DLDSfWKMbm9mSE2a6EIe%26efr%3D1%26ibi%3Dcom%2Evividapartments%2EmyStr%2Ecom%26groupID%3D%2DLDSfWKKbWjyrXiFljT3&ibi=com%2Evividapartments%2EmyStr%2Ecom&imv=1%2E5
            return
        

        // TODO: Handle shortURL.
        print("shortURL is \(String(describing: shortURL))")
    

【问题讨论】:

【参考方案1】:

感谢您将输出包含在 cmets 中,这样可以轻松发现错误。

    仅包含动态链接域中的域,例如let dynamicLinkDomain = "a5481.app.goo.gl" 进一步测试:您可以通过在长链接末尾添加“&d=1”并将其粘贴到浏览器中来调试长链接。

【讨论】:

嗨,我遇到了同样的错误,如果您有解决方案,请查看下面的链接帮助我***.com/q/67019905/11468227

以上是关于如何以编程方式在 Firebase 中创建动态链接?迅速的主要内容,如果未能解决你的问题,请参考以下文章

Firebase:以编程方式剪切动态链接

动态链接 Firebase

Firebase 动态链接没有与自定义标签上的短 URL 进行深度链接

如果应用程序未以编程方式安装 firebase 动态链接,则重定向到 iOS App Store

是否存在某种方式将自定义参数传递给 Firebase 上的短动态链接?

如何在Javascript中创建动态文件+链接以供下载? [复制]