お世話になります。
Firebaseのメール認証で、本人確認メールのdynamic linkを設定し本人確認メールからアプリへ遷移リンクを設定するために実装しましたが、sendEmailVerificationにエラーが返ってきてしまい、本人確認メールが届きません。
手順と実装が正しいかどうか教えて頂きたいです。
なおアプリはまだAppStoreへはリリースしておりません。
■ 手順
Firebaseコンソールで以下を実施
・プロジェクトの設定より「バンドルID」「1344894983」「App ID Prefix」を設定
・Dynamic Linksで新しいダイナミックリンクを作成
■ 実装
・Associated DomainsをON、ドメインを追加
【AppDelegate】
swift
1import UIKit 2import Firebase 3@UIApplicationMain 4class AppDelegate: UIResponder, UIApplicationDelegate { 5 6〜省略〜 7 func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { 8 9 // ■ ダイナミックリンク用. 10 return application(app, open: url, 11 sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String, 12 annotation: "") 13 14 //return true 15 } 16 17 18 func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool { 19 if (DynamicLinks.dynamicLinks()?.dynamicLink(fromCustomSchemeURL: url)) != nil { 20 // Handle the deep link. For example, show the deep-linked content or 21 // apply a promotional offer to the user's account. 22 // ... 23 return true 24 } 25 return false 26 } 27 28 func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool { 29 guard let dynamicLinks = DynamicLinks.dynamicLinks() else { 30 return false 31 } 32 let handled = dynamicLinks.handleUniversalLink(userActivity.webpageURL!) { (dynamiclink, error) in 33 // ... 34 } 35 36 return handled 37 } 38}
【SignupViewController】
swift
1import Firebase 2 3class SignupViewController: UIViewController { 4 〜省略〜 5 private func signup_() { 6 guard let email = emailText.text else { return } 7 guard let password = passwordText.text else { return } 8 9 Auth.auth().createUser(withEmail: email, password: password, completion: { [weak self] (user, error) in 10 if nil == error { 11 12 let credential = EmailAuthProvider.credential(withEmail: email, password: password) 13 user?.reauthenticate(with: credential) { error in 14 let actionCodeSetting = ActionCodeSettings.init() 15 actionCodeSetting.handleCodeInApp = true 16 actionCodeSetting.url = URL(fileURLWithPath: "http://XXXXXX/XXX/") // ディープリンク 17 actionCodeSetting.setIOSBundleID("com.XXXX.XXXX") // バンドルID 18 user?.sendEmailVerification(with: actionCodeSetting, completion: { [weak self] (error) in 19 if nil == error { 20 print("成功") 21 } else { 22 print((error?.localizedDescription)!) 23 } 24 }) 25 } 26 } 27 }) 28 }
■ エラー内容
print((error?.localizedDescription)!)のエラー内容は
An internal error has occurred, print and inspect the error details for more information.
というもので、エラー内容から原因はわかりませんでした。
またFirebaseコンソール画面よりダイナミックリンクを確認したところ以下のワーニングがでていました。
ただコンソールではPrefixは設定済みなのになぜこんなワーニングがでているのかわかりません。
The dynamic link has 1 warning(s)
iOS app 'com.XXXX.XXXX' lacks App ID Prefix. UniversalLinks is not enabled for the app
Firebaseのヘルプを見ても正しく設定してとしか書かれておらず。。。
iOS app lacks App ID Prefix. UniversalLinks is not enabled for the app.
※https://firebase.google.com/docs/dynamic-links/debug#ios-app-id-prefix-absent
解決手段がなく、かなりハマっています。。。
正しい設定をするためには何が足りていないのでしょうか。
お手数ですがご教示して頂きたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。