【发布时间】:2017-06-17 10:22:40
【问题描述】:
当通过 firebaseAuth 完成身份验证时,如何将姓名从 Gmail 帐户发布到 firebase。?如何获取用户资料?
我正在通过 GIDGoogleUser.. 在 Firebase 中创建用户并使用:
let authentication = user.authentication
我在同一个班级发现了一些我可能可以使用的东西,但我需要建议它是正确的方法以及如何从中获取名字和姓氏..?
let profile = user.profile
我的 AppDelegate.swift
import UIKit
import Firebase
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, GIDSignInDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
GIDSignIn.sharedInstance().clientID = FirebaseApp.app()?.options.clientID
GIDSignIn.sharedInstance().delegate = self
UIApplication.shared.statusBarStyle = .lightContent
}
func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) {
if let error = error {
print(error.localizedDescription)
return
}
let authentication = user.authentication
let credential = GoogleAuthProvider.credential(withIDToken (authentication?.idToken)!,accessToken: (authentication?.accessToken)!)
Auth.auth().signIn(with: credential) { (user, error) in
if error != nil {
return
} else {
let registrationReq = FirebaseRegistrationLoginRequests()
registrationReq.checkIfCreateOrGetUser(user: user!)
}
}
}
func sign(_ signIn: GIDSignIn!, didDisconnectWith user:GIDGoogleUser!, withError error: Error!) {
// Perform any operations when the user disconnects from app here.
// ...
}
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
debugPrint(userInfo)
completionHandler(UIBackgroundFetchResult.newData)
}
}
【问题讨论】:
标签: ios swift firebase firebase-authentication