Swift Firebase Facebook 登录 GET 请求应包含明确的 "fields" 参数

Swift Firebase Facebook login GET requests should contain an explicit "fields" parameter

我在使用 Facebook 登录和 Firebase 时遇到了这个错误: FBSDKLog: starting with Graph API v2.4, GET requests for /222413188829898/model_asset should contain an explicit "fields" parameter

这是我创建按钮视图的方式:

我在 JavaScript SDK 中看到了一些答案,但我不知道如何在 Swift 中解决这个问题,因为我没有(直接)执行任何 GET 请求。

struct FacebookLoginButtonView: UIViewRepresentable {
    func makeCoordinator() -> Coordinator {
        return Coordinator()
    }

    func makeUIView(context: UIViewRepresentableContext<FacebookLoginButtonView>) -> FBLoginButton {
        let button = FBLoginButton()
        button.delegate = context.coordinator
        return button
    }

    func updateUIView(_ uiView: FBLoginButton, context: UIViewRepresentableContext<FacebookLoginButtonView>) {
        //
    }

    class Coordinator: NSObject, LoginButtonDelegate {

        func loginButton(_ loginButton: FBLoginButton, didCompleteWith result: LoginManagerLoginResult?, error: Error?) {
            if error != nil {
                // print(error?.localizedDescription)
                return
            }

            if let currentAccessToken = AccessToken.current {
                let credential = FacebookAuthProvider.credential(withAccessToken: currentAccessToken.tokenString)

                Auth.auth().signIn(with: credential, completion: AuthService(firestoreService: FirestoreService()).snHandler)
            }
        }

        func loginButtonDidLogOut(_ loginButton: FBLoginButton) {
            try? Auth.auth().signOut()
        }
    }
}

这里有关于 Swift implementation

的文档

我认为您的问题是由缺少权限引起的 loginButton.permissions = ["public_profile", "email"]