Метод «sendVerificationCode», не являющийся исключением в firebase

#java #firebase #android-studio

#java #firebase #android-studio

Вопрос:

Я работал в проекте, все работало нормально. при написании кода я ввел метод «sendVerificationCode» и связал его с кнопкой, чтобы его можно было исключить, но он не сработал, когда я нажал на кнопку.

также у меня возникла проблема с тем, что длина номера телефона для запроса должна быть 10. но когда я ввел If statmernt, это не сработало.

кроме того, я не получаю никаких ошибок в журнале.

** Вот код: **

         sPhoneNumber = findViewById(R.id.phoneNumberPrompt);
        Code = findViewById(R.id.codePrompt);
        mVerificationButton = findViewById(R.id.verificationButton);
        mSignButton = findViewById(R.id.signButton);

        mPhoneNumber = sPhoneNumber.getText().toString();
        mCode = Code.getText().toString();

        mVerificationButton.setOnClickListener(new View.OnClickListener()
        {

            @Override
            public void onClick(View view)
            {
                if (mPhoneNumber.length() != 10)
                {
                    sPhoneNumber.setError("please make sure your number is right. ");
                    sPhoneNumber.requestFocus();
                }
                else
                {
                    sendVerificationCode(mPhoneNumber);

                    sPhoneNumber.setError("Shit works");
                    sPhoneNumber.requestFocus();
                   // Log.d(Tag, mPhoneNumber);
                }
            }
        });

        mSignButton.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
                verifyPhoneNumberWithCode(mVerificationId ,mCode);
            }
        });

    }

    private void verifyPhoneNumberWithCode(String verificationId, String aCode)
    {
        PhoneAuthCredential credential = PhoneAuthProvider.getCredential(verificationId, aCode);
        signInWithPhoneAuthCredential(credential);
    }



    public void sendVerificationCode(String phoneNumber)
    {
        PhoneAuthProvider.getInstance().verifyPhoneNumber(
               " 49"   phoneNumber,        // Phone number to verify
                6,                 // Timeout duration
                TimeUnit.SECONDS,   // Unit of timeout
                this,               // Activity (for callback binding)
                mCallbacks);        // OnVerificationStateChangedCallbacks
    }
  

Ответ №1:

Итак, я нашел ответ на свой вопрос для ant body, полученный здесь по тем же вопросам.

проблема заключалась в том, что строка mPhoneNumber не могла быть найдена позже, когда я нажал кнопку для отправки проверки, и когда я поместил сообщение if else, если не было найдено, поэтому я поставил mPhoneNumber = sPhoneNumber.getText().toString(); вместо этого из метода onCreate, я поместил его в метод onClick listner, который был в методе onCreate, так что этокод

  sPhoneNumber = findViewById(R.id.phoneNumberPrompt);
        Code = findViewById(R.id.codePrompt);
        
mVerificationButton = findViewById(R.id.verificationButton);
        mSignButton = findViewById(R.id.signButton);

        
        mCode = Code.getText().toString();

        mVerificationButton.setOnClickListener(new View.OnClickListener()
        {
                
         mPhoneNumber = sPhoneNumber.getText().toString();
          

            @Override
            public void onClick(View view)
            {
                if (mPhoneNumber.length() != 10)
                {
                    sPhoneNumber.setError("please make sure your number is right. ");
                    sPhoneNumber.requestFocus();
                }
                else
                {
                    sendVerificationCode(mPhoneNumber);

                    sPhoneNumber.setError("Shit works");
                    sPhoneNumber.requestFocus();
                   // Log.d(Tag, mPhoneNumber);
                }
            }
        });