Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 用于用户身份验证和登录的FirebaseUI,在显示中不显示登录选项_Android_Firebase Authentication_Google Signin_Firebaseui - Fatal编程技术网

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

Android 用于用户身份验证和登录的FirebaseUI,在显示中不显示登录选项,android,firebase-authentication,google-signin,firebaseui,Android,Firebase Authentication,Google Signin,Firebaseui,我正在尝试制作一个android应用程序,用户可以通过Firebase用户身份验证和Firebase用户界面使用带有电子邮件和密码的google帐户登录。我已经尝试了以下java代码,这是编写的。我想承认,在这里编写代码时,花括号可能放错了位置,但在android studio中,花括号没有这样的问题。我没有编写activity_main.xml代码,因为我认为FirebaseUI将添加登录流本身。 所有的图片,我认为将有助于指导,附上 package com.example.finda

我正在尝试制作一个android应用程序,用户可以通过Firebase用户身份验证和Firebase用户界面使用带有电子邮件和密码的google帐户登录。我已经尝试了以下java代码,这是编写的。我想承认,在这里编写代码时,花括号可能放错了位置,但在android studio中,花括号没有这样的问题。我没有编写activity_main.xml代码,因为我认为FirebaseUI将添加登录流本身。 所有的图片,我认为将有助于指导,附上

package com.example.findaplayer;
导入androidx.annotation.NonNull;
导入androidx.appcompat.app.appcompat活动;
导入android.os.Bundle;
导入android.widget.Toast;
导入com.firebase.ui.auth.AuthUI;
导入com.google.firebase.auth.FirebaseAuth;
导入com.google.firebase.auth.FirebaseUser;
导入java.util.array;
导入java.util.List;
公共类MainActivity扩展了AppCompatActivity{
私有FirebaseAuth mFirebaseAuth;
私有FirebaseAuth.AuthStateListener mAuthStateListener;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mFirebaseAuth=FirebaseAuth.getInstance();
mAuthStateListener=new FirebaseAuth.AuthStateListener(){
@凌驾
AuthStateChanged上的公共void(@NonNull FirebaseAuth FirebaseAuth){
FirebaseUser=firebaseAuth.getCurrentUser();
如果(用户!=null){
Toast.makeText(MainActivity.this,“欢迎使用findaplayer应用程序”,
吐司。长度(短)。show();
}否则{
//选择身份验证提供程序
列表提供程序=Arrays.asList(
新建AuthUI.IdpConfig.EmailBuilder().build(),
新建AuthUI.IdpConfig.PhoneBuilder().build(),
新建AuthUI.IdpConfig.GoogleBuilder().build(),
新建AuthUI.IdpConfig.FacebookBuilder().build(),
新建AuthUI.IdpConfig.TwitterBuilder().build());
//创建并启动登录意图
startActivityForResult(
AuthUI.getInstance()
.CreateSignInEntBuilder()
.setAvailableProviders(提供程序)
.build(),
1) ;
}
}
};
}
}

我没有在事件日志中得到任何错误,如所附的名为“事件日志”的屏幕截图所示。我面临的问题是,当这个应用程序在模拟器上运行时,它没有显示登录选项,而是显示hello world,而我认为它的显示应该包括登录选项,因为Firebase UI库正用于此目的。

您声明了一个
mAuthStateListener
侦听器,但您从未告诉Firebase Auth SDK将其用于:

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


                   }
               }

           };
           }

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