2016-06-30 101 views
5

所以,我已經在開發控制檯中啓用電子郵件/密碼,一切工作正常。除了我應該收到確認電子郵件給我輸入的電子郵件,但我沒有得到它。我認爲它會自動執行,但顯然它不會。如何在註冊時發送Firebase電子郵件確認?

爲註冊

方法:

public void signUp(View v) { 
    String email = emailET.getText().toString(); 
    String password = passwordET.getText().toString(); 
    mAuth.createUserWithEmailAndPassword(email, password) 
      .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { 
       @Override 
       public void onComplete(@NonNull Task<AuthResult> task) { 
        Log.d("AD", "createUserWithEmail: " + task.isSuccessful() + task.getException()); 
        if (!task.isSuccessful()) { 
         createDialogSignUpError(
           getApplicationContext().getResources().getString(R.string.signUpFailedET), 
           getApplicationContext().getResources().getString(R.string.signUpFailedEM), 
           getApplicationContext().getResources().getString(android.R.string.ok)); 
         Toast.makeText(SignUp.this, task.getException().toString(), Toast.LENGTH_LONG).show(); 
        } else if (task.isSuccessful()) { 
         Toast.makeText(SignUp.this, "Registration Successful.", Toast.LENGTH_SHORT).show(); 
        } 
       } 
      }); 

} 

應該發送,但遺憾的是事實並非如此。我在SO上讀過一些東西,你需要添加一個方法或一些東西來發送電子郵件,並且它在文檔中缺失,但那不是Java。


編輯

here,它僅在iOS和網絡支持。這是非常令人驚訝的,因爲畢竟Google是谷歌,Google是Firebase。那麼即使創建一個自定義發送的電子郵件也是如此?


編輯2:更清楚,確實的Android有一個電子郵件發件人如C#。如果沒有API,這將是最好的解決方案。

+0

我想你是對的,閱讀[文檔](https://firebase.google.com/docs/auth/custom-email-handler),這是隻有在IOS和可用迅速。還有一些討論[這裏](http://stackoverflow.com/questions/17723195/is-there-any-way-to-do-email-confirmation-for-firebase-user-creation-and-orpass )如果你想看看一些解決方法。 – adolfosrs

+0

不,這不是重複的,如果你沒有閱讀,我說我看到過這樣的問題,而我的問題則完全不同。 –

+0

你讀過這個嗎? http://stackoverflow.com/questions/17723195/is-there-any-way-to-do-email-confirmation-for-firebase-user-creation-and-or-pass – johni

回答

1

現在,您可以通過使用Firebase雲端功能滾動自己的電子郵件發件人,從而在電子郵件報道中插入任何Firebase差距。有一個例子here。當然,這意味着更多的工作,而不僅僅是像內置選項那樣配置,但至少意味着我們可以做我們需要做的任何事情。 :)

1

現在根據updated firebase documentation

這裏是如何驗證郵件發送到你的情況是創建帳戶並讓用戶登錄,然後在送他之後,用戶/她的通知他必須驗證帳戶,然後下一次登錄被阻止,直到他/她沒有驗證(我認爲這比讓用戶被迫首先打開他的電子郵件更好)

發送用戶a驗證郵件

您可以發送地址驗證使用 sendEmailVerification方法向用戶發送電子郵件。例如:

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); 

user.sendEmailVerification() 
     .addOnCompleteListener(new OnCompleteListener<Void>() { 
      @Override 
      public void onComplete(@NonNull Task<Void> task) { 
       if (task.isSuccessful()) { 
        Log.d(TAG, "Email sent."); 
       } 
      } 
     }); 
相關問題