Firebase DynamicLink Url 返回 JSON 序列化错误。 iOS

Posted

技术标签:

【中文标题】Firebase DynamicLink Url 返回 JSON 序列化错误。 iOS【英文标题】:Firebase DynamicLink Url returning jSON serialize error. iOS 【发布时间】:2019-06-17 09:15:58 【问题描述】:

Xcode 版本:10.1 Firebase SDK 版本:6.0.0 Firebase 组件:Firebase/DynamicLinks 组件版本:4.0.0

嗨,我在处理动态链接时卡在一个点上,建立链接时一切都很好,但是我在链接上遇到了这样的错误

<ExceptionMessage>
The 'ObjectContent`1' type failed to serialize the response body for content type 'application/json; charset=utf-8'.
</ExceptionMessage>
<InnerException>
<Message>An error has occurred.</Message>
<ExceptionMessage>
Object reference not set to an instance of an object.
</ExceptionMessage>
<ExceptionType>System.NullReferenceException</ExceptionType>

生成的链接https://marcoapp.page.link/T4Ye 在这里有问题。 我知道这是错误的,有人会说它来自后端,但以前没有相同的东西起作用,甚至 android 级别的应用程序在相同的参数下仍然可以正常工作。而且我没有得到我发送或不发送导致此问题的错误信息。下面提到的是代码。

 guard let components: DynamicLinkComponents = DynamicLinkComponents(link: urlLink, domainURIPrefix: "https://marcoapp.page.link") else 
                return ""
            

在这里 urlLink = https://marcotest.azurewebsites.net/api/Groups/(Int)

【问题讨论】:

【参考方案1】:
func createDynamicLink() 

    let domain = "yourProject.page.link"

    let link = URL(string: "https://facebook.com")
    let referralLink = DynamicLinkComponents(link: link!, domain: domain)

    referralLink.iosParameters = DynamicLinkIOSParameters(bundleID: “set_app_bundleID")
    referralLink.iOSParameters?.appStoreID = "app_store_id"
    referralLink.androidParameters = DynamicLinkAndroidParameters(packageName: "set_app_bundleID")


    guard let longUrl = referralLink.url?.absoluteString else 
        return
    

    print(longUrl)

确保您已经在 Dynamic links 部分的 firebase 帐户 中创建了域,然后只有您可以使用 let domain = "yourProject.page.link"

https://imgur.com/a/Fg5qHyV

【讨论】:

是的,我也做到了,我告诉过你它之前工作正常。我做的都是一样的

以上是关于Firebase DynamicLink Url 返回 JSON 序列化错误。 iOS的主要内容,如果未能解决你的问题,请参考以下文章

长按 url 并选择“在 safari 中打开”时 DynamicLink 不起作用

Firebase 动态链接在应用启动时不起作用

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

Firebase 创建动态链接在本机 iOS 中不起作用。但是它似乎在android中工作正常

将 Firebase 存储下载 URL 推送到 Firebase 云 Firestore

从多个文件上传 Firebase 存储中获取下载 url