"El valor del tipo 'AuthDataResult' no tiene error de miembro 'uid'"

¿Puede alguien ayudarme con este problema? El primer error fue "el valor del tipo 'authdataresult' no tiene miembro 'uid'".

Auth.auth()?.signIn(withEmail: email, password: password, completion:

Así que eliminé el signo de interrogación para resolver el problema y funcionó. Pero después de eso, apareció otro error y decía "El valor del tipo 'AuthDataResult' no tiene miembro 'uid'". Lo sé, es irritante.

self.userUid = user.uid

Y, oh, hay otro error y ha estado en mi proyecto durante mucho tiempo, así que ahora lo estoy ignorando, pero si alguien sabe cómo solucionarlo, avíseme. El error es "solo los métodos de instancia se pueden declarar @ibaction".

@IBAction func signInTapped(_ sender: Any) {

No sé por qué, pero tal vez los 3 errores están conectados. No lo sé. Ayuda. Así que ahora estoy atrapado de nuevo. Aquí está todo el material de codificación desordenado.

import UIKit
import Firebase

class ViewController: UIViewController {
    @IBOutlet weak var emailField: UITextField!
    @IBOutlet weak var passwordField: UITextField!

    var userUid: String!

    func goToCreateUserVC(){
        performSegue(withIdentifier: "SignUp", sender: nil)
    }

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "SignUp" {
            if let destination = segue.destination as? userVC {
                if userUid != nil {
                    destination.userUid = userUid
                }
                if emailField.text != nil {
                    destination.emailField = emailField.text
                }
                if passwordField.text != nil {
                    destination.passwordField = passwordField.text
                }
            }
        }

        @IBAction func signInTapped(_ sender: Any) {
            if let email = emailField.text, let password = passwordField.text {
                Auth.auth().signIn(withEmail: email, password: password, completion: { (user,error) in
                    if error == nil {
                        if let user = user {
                            self.userUid = user.uid
                            self.goToCreateUserVC()
                        }
                    } else {
                        self.goToCreateUserVC()
                    }
                });
            }
        }
    }
}

Como lo juro, traté de arreglarlo y luego aparecieron 9 errores. Por cierto, estoy usando Xcode 9, Swift 4 y mis Cocoapods están actualizados. Para todas las personas que editan, comentan o juzgan preguntas, por favor, esta no es una pregunta duplicada. Son 2 errores diferentes.

Respuestas a la pregunta(2)

Su respuesta a la pregunta