Firebase Dynamic Links tidak memperpendek URL
Saya mencoba mendapatkan Dynamic Links untuk mempersingkat URL saya dengan kode berikut:
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)")
}
Ini baik-baik saja mencetak URL panjang, tetapi baris di bawah (untuk URL singkat) tidak pernah dipanggil:
print("The short URL is: \(url)")
Karena urlpengembaliannya nihil dan saya tidak tahu kenapa. Tidak ada yang saya temukan di panduan atau online yang membawa saya ke arah yang benar.
Apa yang saya lakukan salah ??
Jawaban
Saya pikir itu karena yang berikut ini salah:
guard let url = url, error != nil else { return }
Anda mengatakan pastikan ada URL yang bukan nihil dan pastikan ada kesalahan.
Menurut saya dokumen Firebase salah. Sebaliknya, Anda menginginkan:
guard let url = url, error == nil else { return }
Apa yang telah Anda lakukan di sini:
linkBuilder?.shorten() { url, warnings, error in
guard let url = url, error != nil else { return }
print("The short URL is: \(url)")
}
adalah Anda membuka bungkus url dan memeriksa apakah kesalahan mengandung beberapa Kesalahan, maka Anda mencetak 'URL singkatnya adalah: (url)' itu berarti jika shorten () berhasil dan tidak ada Kesalahan metode pencetakan Anda tidak akan pernah dijalankan.
Yang harus Anda lakukan adalah, Pertama periksa apakah kesalahan tidak mengandung Kesalahan apa pun daripada panggilan print ()
linkBuilder?.shorten() { url, warnings, error in
guard error == nil else { return }
if let shortUrl = url {
print("The short url is \(shortUrl)")
}
}