Flutter Dev نشر 20 يونيو 2020 أرسل تقرير مشاركة نشر 20 يونيو 2020 السلام عليكم ورحمة الله وبركاته استخدم خاصية OTP من firebase لتحقق من ارقام المشتركين في تطبيقي وقد واجهتني مشكلة في حالة المستخدم تاخر فس ادخال رمز OTP قمت باضافة زر للقيام باعادة ارسال الرمز للمستخدم ولكن لم اعلم كيف يمكنني كتابة كود الاستعاده انا استخدم هذا الكود الان كامل public class VerifyPhoneActivity extends AppCompatActivity { private String verificationId; private FirebaseAuth mAuth; private ProgressBar progressBar; private EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_verify_phone); mAuth = FirebaseAuth.getInstance(); progressBar = findViewById(R.id.progressbar); editText = findViewById(R.id.editTextCode); findViewById(R.id.tt).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //=======here I want add it==============/////////// } }); String phonenumber = getIntent().getStringExtra("phonenumber"); sendVerificationCode(phonenumber); findViewById(R.id.buttonSignIn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String code = editText.getText().toString().trim(); if (code.isEmpty() || code.length() < 6) { editText.setError("Enter code..."); editText.requestFocus(); return; } verifyCode(code); } }); } private void verifyCode(String code) { PhoneAuthCredential credential = PhoneAuthProvider.getCredential(verificationId, code); signInWithCredential(credential); } private void signInWithCredential(PhoneAuthCredential credential) { mAuth.signInWithCredential(credential) .addOnCompleteListener(new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { Intent intent = new Intent(VerifyPhoneActivity.this, ProfileActivitytt.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(intent); } else { Toast.makeText(VerifyPhoneActivity.this, task.getException().getMessage(), Toast.LENGTH_LONG).show(); } } }); } private void sendVerificationCode(String number) { progressBar.setVisibility(View.VISIBLE); PhoneAuthProvider.getInstance().verifyPhoneNumber( number, 20, TimeUnit.SECONDS, TaskExecutors.MAIN_THREAD, mCallBack ); } private PhoneAuthProvider.OnVerificationStateChangedCallbacks mCallBack = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() { @Override public void onCodeSent(String s, PhoneAuthProvider.ForceResendingToken forceResendingToken) { super.onCodeSent(s, forceResendingToken); verificationId = s; } @Override public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) { String code = phoneAuthCredential.getSmsCode(); if (code != null) { editText.setText(code); verifyCode(code); } } @Override public void onVerificationFailed(FirebaseException e) { Toast.makeText(VerifyPhoneActivity.this, e.getMessage(), Toast.LENGTH_LONG).show(); } }; } 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
1 Mohamd Imran نشر 20 يونيو 2020 أرسل تقرير مشاركة نشر 20 يونيو 2020 أهلا بك @مروان مروان3 يمكنك عمل ذلك من خلال عمل متغير فليكن بإسم mToken ثم عدل الميثود التالية إلى @Override public void onCodeSent(String s, PhoneAuthProvider.ForceResendingToken forceResendingToken) { super.onCodeSent(s, forceResendingToken); verificationId = s; mToken = forceResendingToken; } ثم نقوم بإستخدام الميثود التالية لإعادة إرسال الرمز مرة أخرى private void resendVerificationCode(String phoneNumber, PhoneAuthProvider.ForceResendingToken token) { PhoneAuthProvider.getInstance().verifyPhoneNumber( phoneNumber, 60, TimeUnit.SECONDS, this, mCallback, token); } ثم قم بعمل onClickListener ,وإستدعي الميثود عند ضغط الزر لإعادة إرسال الرمز ونقوم بإستدعاء الميثود هكذا مع تمرير الرقم ومتغير mToken إليها resendVerificationCode(phonenumber,mToken); اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Flutter Dev
السلام عليكم ورحمة الله وبركاته
استخدم خاصية OTP من firebase لتحقق من ارقام المشتركين في تطبيقي وقد واجهتني مشكلة في حالة المستخدم تاخر فس ادخال رمز OTP قمت باضافة زر للقيام باعادة ارسال الرمز للمستخدم ولكن لم اعلم كيف يمكنني كتابة كود الاستعاده
انا استخدم هذا الكود الان كامل
رابط هذا التعليق
شارك على الشبكات الإجتماعية
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.