FirebaseUI для аутентификации пользователя и входа в систему, не отображая параметр входа на дисплее - PullRequest
0 голосов
/ 11 марта 2020

Я пытаюсь создать приложение android, в котором пользователь может войти в систему, используя учетную запись Google, указав адрес электронной почты и пароль с помощью аутентификации пользователя Firebase и пользовательского интерфейса Firebase. Я попытался с помощью следующего java кода, который написан. Я хотел бы признать, что фигурные скобки, возможно, были неуместны при написании кода здесь, но в android studio такой проблемы с фигурными скобками не было. Я не написал код activity_main. xml, так как думал, что FirebaseUI добавит знак в сам поток. Все изображения, которые я хотел бы использовать в качестве руководства, прилагаются.

enter image description here

enter image description here

enter image description here

enter image description here

       package com.example.findaplayer;

       import androidx.annotation.NonNull;
       import androidx.appcompat.app.AppCompatActivity;


       import android.os.Bundle;
       import android.widget.Toast;

       import com.firebase.ui.auth.AuthUI;
       import com.google.firebase.auth.FirebaseAuth;
       import com.google.firebase.auth.FirebaseUser;

       import java.util.Arrays;
       import java.util.List;

       public class MainActivity extends AppCompatActivity {

           private FirebaseAuth mFirebaseAuth;
           private FirebaseAuth.AuthStateListener mAuthStateListener ;

           @Override
           protected void onCreate(Bundle savedInstanceState){
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);

              mFirebaseAuth = FirebaseAuth.getInstance();

              mAuthStateListener = new FirebaseAuth.AuthStateListener() {

              @Override
              public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
                  FirebaseUser user = firebaseAuth.getCurrentUser();
                  if (user != null) {
                    Toast.makeText(MainActivity.this, "Welcome to findaplayer app", 
                    Toast.LENGTH_SHORT).show();
                   } else {

                      // Choose authentication providers
                      List<AuthUI.IdpConfig> providers = Arrays.asList(
                           new AuthUI.IdpConfig.EmailBuilder().build(),
                           new AuthUI.IdpConfig.PhoneBuilder().build(),
                           new AuthUI.IdpConfig.GoogleBuilder().build(),
                           new AuthUI.IdpConfig.FacebookBuilder().build(),
                           new AuthUI.IdpConfig.TwitterBuilder().build());

                   // Create and launch sign-in intent
                      startActivityForResult(
                                 AuthUI.getInstance()
                                         .createSignInIntentBuilder()
                                         .setAvailableProviders(providers)
                                         .build(),
                                            1) ;


                   }
               }

           };
           }

          }

Я не получаю никакой ошибки в журнале событий, как показано на прикрепленном скриншоте с именем, журнал событий. Проблема, с которой я сталкиваюсь, заключается в том, что, когда это приложение запускается на эмуляторе, оно не показывает параметр входа, вместо этого оно просто показывает hello world, хотя я думаю, что его отображение должно включать параметр входа, поскольку для этого используется библиотека пользовательского интерфейса Firebase.

1 Ответ

0 голосов
/ 11 марта 2020

У вас объявлен прослушиватель mAuthStateListener, но вы никогда не говорили Firebase Auth SDK использовать его с addAuthStateListener () :

FirebaseAuth.getInstance().addAuthStateListener(mAuthStateListener);
...