mok*_*258 3 ios firebase swift firebase-authentication
我想试用 Firebase Auth UI,我正在关注官方文档。文档(至少对于 iOS 而言)非常混乱,有些内容已经过时(导入命名不正确等)。现在我只想在我的测试应用程序开始时显示 Firebase AuthUI 屏幕。我在下面试过
import UIKit
import FirebaseAuthUI
import FirebaseFacebookAuthUI
import FirebaseTwitterAuthUI
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if let authUI = FUIAuth.defaultAuthUI() {
authUI.delegate = self
// Setup login provider ( Need to import these seperately )
authUI.providers = [ FUIFacebookAuth(), FUITwitterAuth() ]
let authViewController = authUI.authViewController()
present(authViewController, animated: true, completion: {})
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
extension ViewController: FUIAuthDelegate {
func authUI(_ authUI: FUIAuth, didSignInWith authDataResult: AuthDataResult?, error: Error?) {
// (Keep empty for now)
}
}
Run Code Online (Sandbox Code Playgroud)
authViewController没有以某种方式呈现,我不知道为什么。我尝试将两个身份验证的东西都放在两者中viewDidLoad,viewWillAppear但没有任何效果。
我也尝试过谷歌搜索并查看其他教程等,但没有解决我的问题。
如果有人能指出我的错误或至少指出我正确的方向,那就太好了。谢谢
Edit1:我尝试在当前放入完成处理程序,但它没有运行,但authViewController不是nil
您正试图在您的 中显示一个新的控制器/屏幕viewWillAppear,这意味着您的屏幕尚未完全加载。所以应该有一个来自 Xcode 的警告,看起来像这样:
警告:尝试呈现不在窗口层次结构中的视图!
现在,将你的代码移到里面viewDidAppear,像这样:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
if let authUI = FUIAuth.defaultAuthUI() {
authUI.delegate = self
// Setup login provider ( Need to import these seperately )
authUI.providers = [ FUIFacebookAuth(), FUITwitterAuth() ]
let authViewController = authUI.authViewController()
present(authViewController, animated: true, completion: {})
}
}
Run Code Online (Sandbox Code Playgroud)
这应该有效。:)
| 归档时间: |
|
| 查看次数: |
629 次 |
| 最近记录: |