Firebase 动态链接未缩短 URL
Firebase Dynamic Links not shortening URL
我正在尝试使用以下代码获取动态链接以缩短我的 URL:
guard let link = URL(string: "https://myapp.com") else { return }
let dynamicLinksDomainURIPrefix = "https://app.myapp.com/link"
let linkBuilder = DynamicLinkComponents(link: link, domainURIPrefix: dynamicLinksDomainURIPrefix)
linkBuilder?.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.myapp.ios")
guard let longDynamicLink = linkBuilder?.url else { return }
print("The long URL is: \(longDynamicLink)")
let options = DynamicLinkComponentsOptions()
options.pathLength = .short
linkBuilder?.options = options
linkBuilder?.shorten() { url, warnings, error in
guard let url = url, error != nil else { return }
print("The short URL is: \(url)")
}
打印长 URL 正常,但下面的行(简称 URL)从未被调用:
print("The short URL is: \(url)")
因为url
returns 没有而且我不知道为什么。我在指南或网上找到的任何内容都没有引导我走向正确的方向。
我做错了什么??
我认为是因为以下内容不正确:
guard let url = url, error != nil else { return }
你是说确保有一个非零 URL 并确保有一个错误。
我认为 Firebase 文档是错误的。相反,你想要:
guard let url = url, error == nil else { return }
你在这里做了什么:
linkBuilder?.shorten() { url, warnings, error in
guard let url = url, error != nil else { return }
print("The short URL is: \(url)")
}
你是在展开 url 并检查错误是否包含一些错误,那么你正在打印 'The short URL is: (url)' 这意味着如果 shorten() 成功并且没有错误你的打印方法将永远不会被执行。
你要做的是,首先检查错误是否不包含任何错误然后调用 print()
linkBuilder?.shorten() { url, warnings, error in
guard error == nil else { return }
if let shortUrl = url {
print("The short url is \(shortUrl)")
}
}
我正在尝试使用以下代码获取动态链接以缩短我的 URL:
guard let link = URL(string: "https://myapp.com") else { return }
let dynamicLinksDomainURIPrefix = "https://app.myapp.com/link"
let linkBuilder = DynamicLinkComponents(link: link, domainURIPrefix: dynamicLinksDomainURIPrefix)
linkBuilder?.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.myapp.ios")
guard let longDynamicLink = linkBuilder?.url else { return }
print("The long URL is: \(longDynamicLink)")
let options = DynamicLinkComponentsOptions()
options.pathLength = .short
linkBuilder?.options = options
linkBuilder?.shorten() { url, warnings, error in
guard let url = url, error != nil else { return }
print("The short URL is: \(url)")
}
打印长 URL 正常,但下面的行(简称 URL)从未被调用:
print("The short URL is: \(url)")
因为url
returns 没有而且我不知道为什么。我在指南或网上找到的任何内容都没有引导我走向正确的方向。
我做错了什么??
我认为是因为以下内容不正确:
guard let url = url, error != nil else { return }
你是说确保有一个非零 URL 并确保有一个错误。
我认为 Firebase 文档是错误的。相反,你想要:
guard let url = url, error == nil else { return }
你在这里做了什么:
linkBuilder?.shorten() { url, warnings, error in
guard let url = url, error != nil else { return }
print("The short URL is: \(url)")
}
你是在展开 url 并检查错误是否包含一些错误,那么你正在打印 'The short URL is: (url)' 这意味着如果 shorten() 成功并且没有错误你的打印方法将永远不会被执行。
你要做的是,首先检查错误是否不包含任何错误然后调用 print()
linkBuilder?.shorten() { url, warnings, error in
guard error == nil else { return }
if let shortUrl = url {
print("The short url is \(shortUrl)")
}
}