engeng52821
@engeng52821 (wasa wi)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

firebaseによるログイン

解決したいこと

firebase を使用したログイン機能に関する質問です。
下記のようにfirebaseを使用したログイン機能を作成いたしました。

@IBAction func registerAccount() {
let email = emailTextField.text!
let password = passwordTextField.text!
auth.createUser(withEmail: email, password: password) { (result, error) in
if error == nil, let result = result {
self.performSegue(withIdentifier: "Timeline", sender: result.user) 
}}}}

上記で作成した場合、以下のような方法により、アカウントを作成しているか、されていないのかによってアカウント画面を表示する・しないのだ出し分けをしようとしました。しかしながら、一度アプリを落としてしまうと必ずnilになってしまいます。
firebaseを使用する場合、アプリを開くたびに自分でメールアドレスとパスワードを入力しなくてはいけないのでしょうか。

if Auth.auth().currentUser != nil {
} else {
}
0

1Answer

注: Auth オブジェクトの初期化が完了していない場合も、currentUser が nil になることがあります。リスナーを使用してユーザーのログイン ステータスを追跡している場合は、この状況に対処する必要はありません。

ということなので addStateDidChangeListener(_:) を利用するのが良いのではないでしょうか。

0Like

Comments

  1. @engeng52821

    Questioner

    ありがとうございます。
    ネットで検索して以下のようなコードにしてみましたが、noneがプリントされてしまいます。ローディング画面を表示させたりある程度余裕を持たせたりしてもnoneになってしまい、何ができていないのかわからないのですがもう少し頑張ってみます。
    override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    Auth.auth().addStateDidChangeListener { (auth, user) in
    if let user = user {
    print(user)
    } else {
    print("none")
    }
    }

Your answer might help someone💌