Я представляю вход в Google для своего приложения, а документация Google и Firebase достаточно полная, то, что я сделал по их предложению, недостаточно. Я все еще получаю эту ошибку. Надеюсь, это поможет другим в поиске решения проблемы при внедрении их SDK .... спасибо заранее за рецензирование коренастый один:Вход в Google через Firebase: GIDSignInDelegate не соответствует ViewController
Вот Firebase guide и Google guide:
Так
- Добавлена Google для podfile - ПРОВЕРКА
- Adde д линии в Bridging-заголовка - ПРОВЕРКА
- Добавлено GoogleService-Info.plist & расслоение идентификатор & обратный идентификатор клиента в схемы URL - Проверьте
приложение делегат имеет следующее, без каких-либо ошибок но я замечаю, что, вероятно, будут конфликты между входом в систему Facebook (работает корректно) и новым Google, о котором я не знаю, как обращаться вместе:
P.S. я не добавил GIDSignInDelegate к AppDelegate здесь, потому что я планирую для моего VC справиться с логикой входа в систему, как вы увидите ниже ...
LoginVC ViewController код здесь:
class LoginVC: UIViewController, UIViewControllerTransitioningDelegate, UITextViewDelegate, UITextFieldDelegate, GIDSignInDelegate, GIDSignInUIDelegate { override func viewDidLoad() { super.viewDidLoad() let ref = Firebase(url: "https://MYAPPID.firebaseio.com") GIDDSignIn.sharedInstance().delegate = self GIDSignIn.sharedInstance().uiDelegate = self GIDSignIn.sharedInstance().signInSilently() // for if the user has recently been authenticated }
Тогда это, что от того, что я могу видеть ... должно быть все, что Google нужно поговорить с Firebase:
// Implementing the required GIDSignInDelegate methods
func googleSignIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!, withError error: NSError!) {
if (error == nil) {
// Auth with Firebase
let userId = user.userID
let idToken = user.authentication.idToken
let fullName = user.profile.name
let givenName = user.profile.givenName
let familyName = user.profile.familyName
let email = user.profile.email
ref.authWithOAuthProvider("google", token: user.authentication.accessToken, withCompletionBlock: { (error, authData) in
// User is logged in!
})
} else {
print("\(error.localizedDescription)")
}
}
func googleSignOut() {
GIDSignIn.sharedInstance().signOut()
ref.unauth()
}
// Implement the required GIDSignInDelegate methods and Unauth when disconnected from Google
func signIn(signIn: GIDSignIn!, didDisconnectWithUser user:GIDGoogleUser!, withError error: NSError!) {
ref.unauth()
}
// IBAction to handle the sign-in process
@IBAction func googleButtonPressed(sender: TKTransitionSubmitButton!) {
GIDSignIn.sharedInstance().signIn()
}
Baffled? Извините за давних парней ... но я сделал все, что предлагает руководство Firebase, и это означает, что логика в документе Google для AppDelegate присутствует там в ProfileVC. Любые указатели?
Я сам изучаю программирование на iOS и просто получил сегодня знак google. Я предполагаю, что это проблема с GISSignInDelegate, хотя вы сказали, что позаботились об этом. Мое предложение состоит в том, чтобы начать с чистого проекта, следовать учебному курсу в Google буквально, пока вы его не запустили, тогда вы можете изменить все, что хотите –
Да, с тех пор, как он начал работать с новой firebase, спасибо! –
Такая же проблема при обновлении до быстрого 3. –