java - 如何使用 Firebase 身份验证 android studio 使用电子邮件和密码进行注册
问题描述
我正在尝试使用带有电子邮件和密码的 firebase 进行注册,但是当我在注册按钮上添加 onclicklistner 并尝试注册并运行应用程序时,Gradle 构建已成功运行,但应用程序崩溃了这里的代码中没有错误注册代码活动:
公共类 SignUpActivity 扩展 AppCompatActivity {
ActivitySignUpBinding binding;
private FirebaseAuth mAuth;
FirebaseDatabase database;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivitySignUpBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
getSupportActionBar().setTitle("Sign Up");
// Initialize Firebase Auth
mAuth = FirebaseAuth.getInstance();
database= FirebaseDatabase.getInstance();
binding.SignUpBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mAuth.createUserWithEmailAndPassword(binding.EmailTv.getText().toString() ,binding.PasswordTv.
getText().toString()).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()){
Toast.makeText(SignUpActivity.this, "User created successfully",
Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(SignUpActivity.this, task.getException().getMessage(),
Toast.LENGTH_SHORT).show();
}
}
});
}
});
binding.alreadyHaveAccount.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(SignUpActivity.this, SignInActivity.class);
startActivity(intent);
}
});
}
}
Gradle 构建应用程序级别:
plugins {
id 'com.android.application'
id 'com.google.gms.google-services'
}
android { compileSdk 30
defaultConfig {
applicationId "com.example.myapplication"
minSdk 16
targetSdk 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
buildFeatures {
viewBinding true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
依赖{
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.0'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
//implementation 'com.google.firebase:firebase-auth:21.0.1'
// Import the BoM for the Firebase platform
implementation platform('com.google.firebase:firebase-bom:28.3.0')
// Declare the dependency for the Firebase Authentication library
// When using the BoM, you don't specify versions in Firebase library dependencies
implementation 'com.google.firebase:firebase-auth'
implementation 'com.google.firebase:firebase-database'
}
日志代码:
Caused by: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.example.myapplication. Make sure to call FirebaseApp.initializeApp(Context) first.
at com.google.firebase.FirebaseApp.getInstance(FirebaseApp.java:183)
at com.google.firebase.auth.FirebaseAuth.getInstance(com.google.firebase:firebase-auth@@21.0.1:1)
at com.example.myapplication.SignUpActivity.onCreate(SignUpActivity.java:32)
at android.app.Activity.performCreate(Activity.java:6915)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2746)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2864)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1567)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:6523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)
.当我从注册按钮中删除 onclicklistner 时,应用程序启动。请帮我解决这个问题。
解决方案
推荐阅读
- ios - How to fix issue regarding pkpass not working after dragging to ios simulator?
- rust - How to solve "returns a value referencing data owned by the current function" error in Rust?
- mongodb - MongoDB,在组计数之后再做一次计数
- python - 如何添加变量
- android - 选择与 TouchableOpacity 相同时如何自定义按钮或视图?
- django - 上传文件时,有什么方法可以绕过托管我的 Django 站点的服务器,而是立即上传到 S3?
- php - 如何用PHP中的html标签替换括号中的一些单词?
- visual-studio-2017 - Visual Studio Q# IDE 中的自动代码完成?
- postgresql - 如何创建访问 CTE 表内 IF 语句的 PostgreSQL UPSERT 函数?
- apache-kafka - Kafka Stream:最终结果立即发出?