Firebaseを使用してFacebookでのログインを実装していますが、データベースに存在し、アプリが見つかった場合はログに記録されています。このメソッドが非同期であるため、ユーザが登録ビューコントローラに見つからない場合はユーザを誘導し、ユーザが動作しないようにします。誰でも手伝っていただければ幸いです。ここに私のコードです:Firebaseを使用したFacebookのログイン - Swift iOS
func getFacebookUserInfo() {
if(FBSDKAccessToken.current() != nil){
let graphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields" : "id,name,gender,email,education"])
let connection = FBSDKGraphRequestConnection()
connection.add(graphRequest, completionHandler: { (connection, result, error) -> Void in
let data = result as! [String : AnyObject]
let email = data["email"] as? String
let emailRef = FIRDatabase.database().reference().child("usernameEmailLink")
emailRef.queryOrderedByValue().observe(.childAdded, with: { snapshot in
if let snapshotValue = snapshot.value as? [String: AnyObject] {
for (key, value) in snapshotValue {
if(value as? String == email){
self.stringMode = snapshotValue["mode"]! as! String
self.username = key
self.parseUserInfoFromJSON()
return
}
}
}
})
})
connection.start()
}
}
ありがとうございます。
質問は少し不明ですので、答えるのは難しいです。ユーザーがFacebook認証で認証すれば、認証されます。なぜあなたは自分のメールを検索しますか?すなわち、Firebase Facebook APIはFirebaseユーザを先に作成する。 [Facebook認証]の手順4と5を参照してください(https://firebase.google。 – Jay
@Jay私のアプリケーションでは、ユーザーが登録されていることが必要です – Reem
それはどういう意味なのかはっきりしませんが、あなたが探している答えかもしれません。 – Jay