2016-10-12 29 views
1

Firebaseの開発は初めてです。私はFirebaseでユーザログインシステムを作成しています。登録ユーザーのメールを確認するのに苦労しています。ここに私が書いたコードがあります。Firebaseの電子メールの確認android

auth.createUserWithEmailAndPassword(email,password).addOnCompleteListener(MainActivity.this, new OnCompleteListener<AuthResult>() { 
       @Override 
       public void onComplete(@NonNull Task<AuthResult> task) { 
        Toast.makeText(MainActivity.this, "createUserWithEmail:onComplete:" + task.isSuccessful(), Toast.LENGTH_SHORT).show(); 
        progressBar.setVisibility(View.GONE); 
        FirebaseUser user= FirebaseAuth.getInstance().getCurrentUser(); 
        user.sendEmailVerification().addOnCompleteListener(new OnCompleteListener<Void>() { 
         @Override 
         public void onComplete(@NonNull Task<Void> task) { 
          if(task.isSuccessful()){ 
           Log.i("Success", "Yes"); 
          } 
          else{ 
           Log.i("Success", "No");} 
         } 
        }); 

        if (!task.isSuccessful()) { 
         Toast.makeText(MainActivity.this, "Authentication failed." + task.getException(), 
           Toast.LENGTH_SHORT).show(); 
        } else { 

         startActivity(new Intent(MainActivity.this, Activity2.class)); 
         finish(); 
        } 

       } 
      }); 
     } 
    }); 

EDIT:登録が成功すると、確認メールは送信されません。 41::私は取得していますエラーが

10-12 10 47.579 10529から10529/com.firebase I /成功:
Nocom.google.firebase.FirebaseException:内部エラーが が発生しました。 [USER_NOT_FOUND]

+0

が可能に投稿する場合、エラーログだけでなく、あなたが直面している問題の正確な性質を明記してください。 –

+0

投稿を編集しました! –

答えて

0
  1. あなたがページ上の多くのチュートリアルを見つけることができます。このpageでメール&パスワードに

  2. の設定、電子メール&パスワード認証を有効にする必要があります。あなたがfirebaseの新しいバージョンを使用している場合は、接続を確認しようとすることができ

...情報here

+0

私はすでに電子メール/パスワードの確認を有効にしています。 –

+0

バージョンが古い場合は、このページを確認できますhttps://www.firebase.com/docs/android/quickstart.htmlバージョンが新しい場合は、このページで確認してくださいhttps://firebase.google.com/docs/アンドロイド/セットアップGoogleは、新しいバージョンでは、Googleの変更は非常に多くのAPIの構造、しかし、ロジックは同じです –

0

あなたはそれを取得する前に成功していることを確認するためにcreateUserWithEmailAndPassword()の状態を確認する必要があります現在のユーザーと呼び出しsendEmailVerification()createUserWithEmailAndPassword()に失敗する理由はいくつかあります(アカウントは既に存在します、弱いパスワード、不正な形式のメールアドレスなど)。失敗した場合は、以前にログインしたユーザーである現在のユーザー、または以前のログインがなかった場合はnullです。このような

再構築してコード:

auth.createUserWithEmailAndPassword(email,password).addOnCompleteListener(MainActivity.this, new OnCompleteListener<AuthResult>() { 
     @Override 
     public void onComplete(@NonNull Task<AuthResult> task) { 
      Toast.makeText(MainActivity.this, "createUserWithEmail:onComplete:" + task.isSuccessful(), Toast.LENGTH_SHORT).show(); 
      progressBar.setVisibility(View.GONE); 

      if (!task.isSuccessful()) { 
       Toast.makeText(MainActivity.this, "Authentication failed." + task.getException(), 
         Toast.LENGTH_SHORT).show(); 
      } else { 
       FirebaseUser user= FirebaseAuth.getInstance().getCurrentUser(); 
       user.sendEmailVerification().addOnCompleteListener(new OnCompleteListener<Void>() { 
        @Override 
        public void onComplete(@NonNull Task<Void> task) { 
         if(task.isSuccessful()){ 
          Log.i("Success", "Yes"); 
         } 
         else{ 
          Log.i("Success", "No");} 
        } 
       }); 

       startActivity(new Intent(MainActivity.this, Activity2.class)); 
       finish(); 
      } 
     } 
    }); 
関連する問題