Я довольно новичок в Swift и Firebase, и я пытаюсь заставить поставщика Microsoft OAuth работать, как описано здесь:
https://firebase.google.com/docs/auth/ios/microsoft-oauth?authuser=0
Мое приложение стабильно работает,но кнопка MSLoginTapped ничего не делает, и при отладке я вижу только то, что provider.getCredentialWith
не запускается, потому что я не получаю оператор печати.
В документации, похоже, было несколько ошибок, поэтому я подстроил его как можно лучше и отправил запрос на проверку документации.
Фрагмент документации Firebase:
provider.getCredentialWithUIDelegate(nil) { credential, error in
if error != nil {
// Handle error.
}
if credential != nil {
Auth().signInAndRetrieveData(with: credential) { authResult, error in
if error != nil {
// Handle error.
}
// User is signed in.
// IdP data available in authResult.additionalUserInfo.profile.
// OAuth access token can also be retrieved:
// credential.accessToken
}
}
}
Проблема 1: provider.getCredentialWithUIDelegate
не распознан.
Проблема 2: Auth().signInAndRetrieveData
не распознан.
========== ========== ========== ========== ==========
Вот что я работаю (это НЕ работает):
class LoginViewController: UIViewController {
var ref : DatabaseReference!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func MSLoginTapped(_ sender: UIButton) {
let provider = OAuthProvider(providerID: "microsoft.com")
provider.getCredentialWith(nil) { (credential, error) in
if error != nil {
// Handle error.
print("Failed to retreive credential.")
return
}
if credential != nil {
Auth.auth().signInAndRetrieveData(with: credential!) { authResult, error in
if error != nil {
// Handle error.
}
// User is signed in.
// IdP data available in authResult.additionalUserInfo.profile.
// OAuth access token can also be retrieved:
// credential.accessToken
}
} else {
print("Credential is nil.")
}
}
}
}