我有一个应用程序,该应用程序在应用程序内部使用FB登录来收集用户FB ID,该ID用于创建指向其FB页面的链接,如下所示:
@IBAction func saveFacebookDidTap(_ sender: Any) {
if sharingFacebook == false {
if FBSDKAccessToken.current() == nil {
print("no token")
}
login.logIn(withReadPermissions: ["public_profile"], handler: { (result, error) -> Void in
if error == nil && !(result?.isCancelled)! {
let fbloginresult : FBSDKLoginManagerLoginResult = result!
if fbloginresult.grantedPermissions.contains("public_profile") {
print("success")
let parameters = ["fields" : "id"]
if FBSDKAccessToken.current() != nil {
self.facebookButton.setTitle("Remove Facebook from your Profile", for: [])
self.sharingFacebook = true
FBSDKGraphRequest(graphPath: "me", parameters: parameters).start { (connection, result, error) -> Void in
if …Run Code Online (Sandbox Code Playgroud) 我有一个返回类对象或nil的函数.该函数的目的是检查是否Chat存在.聊天ID存储在MySQL中.如果ID存在,我执行Firebase引用以获取快照,然后获取该对象.如果ID不存在,我返回nil:
func findChat(string: String) -> Chat? {
var returnValue: (Chat?)
let url = getChatsURL
let Parameters = [ "title" : string ]
Alamofire.request("\(url)", method: .post, parameters: Parameters).validate().responseString { response in
if let anyResponse = response.result.value {
self.responseFromServer = anyResponse
}
if self.responseFromServer == "" {
returnValue = nil
} else {
let ref = DatabaseReference.chats.reference()
let query = ref.queryOrdered(byChild: "uid").queryEqual(toValue: (self.responseFromServer))
query.observe(.childAdded, with: { snapshot in
returnValue = Chat(dictionary: snapshot.value as! [String : Any])
})
}
return returnValue …Run Code Online (Sandbox Code Playgroud)