【发布时间】:2022-10-05 14:25:34
【问题描述】:
嘿伙计们,我在 Android Studio 中遇到了一个问题, 我的应用程序以前运行良好,但是当我尝试通过 FireBase Auth 登录或注册应用程序时突然出现问题,
我试图重置firebase控制台并打开一个新控制台,按书将应用程序连接到firebase,所有实现都是最新的,并且在清单中我有android:usesCleartextTraffic =“true”,当然我仔细检查控制台中的电子邮件和密码是否已启用。
通过单击登录或注册按钮没有任何反应,但在日志猫中,我只能看到: “W/System:忽略标头 X-Firebase-Locale,因为它的值为 null”。
注册的活动文件:`
private lateinit var binding: ActivityRegisterBinding
private lateinit var email : String
private lateinit var confPass : String
private lateinit var password : String
private lateinit var tvRedirectLogin : TextView
private lateinit var btnSignUp : Button
// create Firebase authentication object
private lateinit var auth: FirebaseAuth
override fun onCreate(savedInstanceState: Bundle?) {
binding = ActivityRegisterBinding.inflate(layoutInflater)
super.onCreate(savedInstanceState)
setContentView(binding.root)
// View Bindings
email = binding.etEmail.toString()
confPass = binding.etConfPassword.toString()
password = binding.etPassword.toString()
btnSignUp = binding.btnSSigned
tvRedirectLogin = binding.tvRedirectLogin
// Initialising auth object
auth = Firebase.auth
btnSignUp.setOnClickListener {
signUpUser()
}
// switching from signUp Activity to Login Activity
tvRedirectLogin.setOnClickListener {
val intent = Intent(this, LoginActivity::class.java)
startActivity(intent)
}
}
private fun signUpUser() {
check pass
if (email.isBlank() || password.isBlank() || confPass.isBlank()) {
Toast.makeText(this, "Email and Password can't be blank", Toast.LENGTH_SHORT).show()
return
}
if (password.toString() != confPass.toString()) {
// Toast.makeText(this, "Password's do not match", Toast.LENGTH_SHORT)
.show()
return
}
auth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(this) {
if (it.isSuccessful) {
Toast.makeText(this, "Successfully Singed Up", Toast.LENGTH_SHORT).show()
val intent = Intent(this, MainActivity::class.java)
startActivity(intent)
} else {
Toast.makeText(this, "Singed Up Failed!", Toast.LENGTH_SHORT).show()
}
}
}
}
注册 xml 的代码:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ui.RegisterActivity">
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="vertical"
android:padding="15dp"
android:paddingTop="40dp"
android:paddingBottom="40dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<EditText
android:id="@+id/etEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginTop="30dp"
android:layout_marginRight="15dp"
android:autofillHints="emailAddress"
android:ems="10"
android:hint="@string/email"
android:inputType="textEmailAddress"
android:minHeight="48dp"
android:textColorHint="#757575" />
<EditText
android:id="@+id/etPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginTop="15dp"
android:layout_marginRight="15dp"
android:autofillHints="password"
android:ems="10"
android:hint="@string/password"
android:inputType="textPassword"
android:minHeight="48dp"
android:textColorHint="#757575" />
<EditText
android:id="@+id/etConfPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginTop="15dp"
android:layout_marginRight="15dp"
android:autofillHints="password"
android:ems="10"
android:hint="@string/confirm_password"
android:inputType="textPassword"
android:minHeight="48dp"
android:textColorHint="#757575"
tools:ignore="TextContrastCheck" />
<Button
android:id="@+id/btnSSigned"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:background="@drawable/common_google_signin_btn_icon_dark"
android:text="Sign Up" />
<TextView
android:id="@+id/tvRedirectLogin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:gravity="center_horizontal"
android:text="already have an account? login here"
android:textColor="#18206F"
android:textSize="16sp" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
登录xml:`
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="ui.LoginActivity">
<LinearLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<EditText
android:id="@+id/etEmailAddress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginTop="30dp"
android:layout_marginRight="15dp"
android:autofillHints="emailAddress"
android:ems="10"
android:hint="@string/email"
android:inputType="textEmailAddress"
android:minHeight="48dp"
android:textColorHint="#757575" />
<EditText
android:id="@+id/etPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginTop="15dp"
android:layout_marginRight="15dp"
android:autofillHints="password"
android:ems="10"
android:hint="@string/password"
android:inputType="textPassword"
android:minHeight="48dp"
android:textColorHint="#757575" />
<Button
android:id="@+id/btnLogin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:background="@drawable/common_google_signin_btn_icon_dark"
android:text="@string/login" />
<TextView
android:id="@+id/tvRedirectSignUp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="15dp"
android:gravity="center_horizontal"
android:text="don_t_have_an_account_sign_up"
android:textColor="#18206F"
android:textSize="16sp" />
</LinearLayout>
`
登录活动:
@AndroidEntryPoint 类登录活动:AppCompatActivity(){
private lateinit var tvRedirectSignUp: TextView
lateinit var etEmail: EditText
private lateinit var etPass: EditText
lateinit var btnLogin: Button
// Creating firebaseAuth object
lateinit var auth: FirebaseAuth
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
// View Binding
tvRedirectSignUp = findViewById(R.id.tvRedirectSignUp)
btnLogin = findViewById(R.id.btnLogin)
etEmail = findViewById(R.id.etEmailAddress)
etPass = findViewById(R.id.etPassword)
// initialising Firebase auth object
auth = FirebaseAuth.getInstance()
btnLogin.setOnClickListener {
login()
}
tvRedirectSignUp.setOnClickListener {
val intent = Intent(this, RegisterActivity::class.java)
startActivity(intent)
// using finish() to end the activity
finish()
}
}
private fun login() {
val email = etEmail.text.toString()
val pass = etPass.text.toString()
// calling signInWithEmailAndPassword(email, pass)
// function using Firebase auth object
// On successful response Display a Toast
auth.signInWithEmailAndPassword(email, pass).addOnCompleteListener(this) {
if (it.isSuccessful) {
Toast.makeText(this, "Successfully LoggedIn", Toast.LENGTH_SHORT).show()
} else
Toast.makeText(this, "Log In failed ", Toast.LENGTH_SHORT).show()
}
}
}
如果有人遇到同样的问题,请分享解决方案,如果需要代码中的其他任何内容,请随时在评论部分写。
先感谢您。
【问题讨论】:
-
这段代码中究竟有什么不能按您期望的方式工作?告诉我们共享代码有什么问题。你有什么错误吗?
-
嘿亚历克斯感谢您的评论,没有错误只是代码无法正常工作,当我尝试登录或注册我的应用程序而不是将我注册到firebase或登录时,日志猫只是打印“W /系统:忽略标头 X-Firebase-Locale,因为它的值为空”,而我当然放了不为空的属性
-
请修剪您的代码,以便更容易找到您的问题。请按照以下指南创建minimal reproducible example。
标签: firebase android-studio kotlin