2016-06-30 26 views
5

Vì vậy, tôi đã bật email/mật khẩu trong bảng điều khiển dành cho nhà phát triển và mọi thứ đều hoạt động tốt. Ngoại trừ việc tôi nên nhận được email xác nhận đến email tôi đã nhập, nhưng tôi không nhận được email đó. Tôi nghĩ nó tự động, nhưng rõ ràng là không.Cách gửi xác nhận email Firebase khi đăng ký?


Phương pháp đăng ký:

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(); 
        } 
       } 
      }); 

} 

Nên gửi, nhưng đáng tiếc nó không phải vậy. Tôi đã đọc một nơi nào đó trên SO mà bạn cần phải thêm một phương pháp hoặc một cái gì đó để gửi email, và nó thiếu trong tài liệu, nhưng đó không phải là Java.


Sửa

Theo here, nó chỉ được hỗ trợ trong iOS và web. Điều này khá đáng ngạc nhiên, vì sau cùng, android LÀ Google và Google là Firebase. Vì vậy, nó có thể ngay cả với việc tạo một email được gửi tùy chỉnh?


Chỉnh sửa 2: Để được rõ ràng hơn, làm Android có một Email người gửi như C#. Đó sẽ là giải pháp tốt nhất nếu không có API cho việc này.

+0

Tôi đoán bạn là đúng, đọc [tài liệu] (https://firebase.google.com/docs/auth/custom-email-handler) này chỉ có sẵn trong ios và nhanh. Ngoài ra còn có một số cuộc thảo luận [tại đây] (http://stackoverflow.com/questions/17723195/is-there-any-way-to-do-email-confirmation-for-firebase-user-creation-and-or-pass) nếu bạn muốn xem xét một số giải pháp. – adolfosrs

+0

Không, đây không phải là một bản sao, nếu bạn không đọc, tôi nói rằng tôi đã nhìn thấy những câu hỏi như thế và tôi hoàn toàn khác. –

+0

Bạn đã đọc cái này chưa? http://stackoverflow.com/questions/17723195/is-there-any-way-to-do-email-confirmation-for-firebase-user-creation-and-or-pass – johni

Trả lời

1

Giờ đây, bạn có thể cắm bất kỳ khoảng trống Firebase nào trong vùng phủ sóng email bằng cách gửi người gửi email của riêng bạn bằng cách sử dụng Chức năng đám mây của Firebase. Có một ví dụ here. Tất nhiên điều này có nghĩa là nhiều công việc hơn là chỉ cấu hình như các tùy chọn dựng sẵn nhưng ít nhất có nghĩa là chúng ta có thể làm bất cứ điều gì chúng ta cần làm. :)

1

Bây giờ theo updated firebase documentation

Dưới đây là làm thế nào để gửi thư xác minh cho người dùng rằng trong trường hợp của bạn là sau khi tạo tài khoản và cho phép người sử dụng để đăng nhập sau đó gửi cho anh ta/cô thông báo rằng anh ấy phải xác minh tài khoản và sau đó đăng nhập tiếp theo bị chặn cho đến khi anh ấy/cô ấy không xác minh (tôi nghĩ điều này tốt hơn là khiến người dùng buộc phải mở email của mình trước)

Gửi cho người dùng email xác minh

Bạn có thể gửi xác minh địa chỉ gửi email cho người dùng bằng phương thức sendEmailVerification của . Ví dụ:

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."); 
       } 
      } 
     }); 
Các vấn đề liên quan