用于用户身份验证和登录的FirebaseUI,在显示中不显示登录选项

问题描述 投票:0回答:1

我正在尝试制作一个Android应用程序,在该应用程序中,用户可以通过Firebase用户身份验证和Firebase UI使用带有电子邮件和密码的Google帐户登录。我尝试使用下面的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) ;


                   }
               }

           };
           }

          }

我在事件日志中没有收到任何错误,如随附的名为事件日志的屏幕快照所示。我面临的问题是,当此应用在模拟器上运行时,它没有显示登录选项,而是显示了问候世界,而我认为它的显示应包括登录选项,因为Firebase UI库正用于此目的。

android firebase-authentication google-signin firebaseui
1个回答
0
投票

您声明了mAuthStateListener侦听器,但从未告诉Firebase Auth SDK将其与addAuthStateListener()一起使用:

FirebaseAuth.getInstance().addAuthStateListener(mAuthStateListener);
© www.soinside.com 2019 - 2024. All rights reserved.