我目前正在做我的第一个项目,所以如果听起来像一个愚蠢的问题,我感到抱歉。
我遇到了一段代码问题,当您单击按钮时,该代码应尝试使用UI文本框中提供的电子邮件和密码来创建Firebase帐户。相反,每当我单击该按钮时,应用程序都会崩溃并显示错误:java.lang.IllegalArgumentException:给定的String为空或null。
代码:
//Create new User
var email = emailID.text.toString().trim()
var pwd = passwordID.text.toString().trim()
create_acc_button.setOnClickListener{
mAuth!!.createUserWithEmailAndPassword(email,
pwd).addOnCompleteListener(this
) { task: Task<AuthResult> ->
if (task.isSuccessful){
var user:FirebaseUser = mAuth!!.currentUser!!
Log.d("User", user.email.toString())
}else{
Log.d("Error:", task.toString())
}
}
}
Logcat:
java.lang.IllegalArgumentException: Given String is empty or null
at com.google.android.gms.common.internal.zzbq.zzgm(Unknown Source:10)
at com.google.firebase.auth.FirebaseAuth.createUserWithEmailAndPassword(Unknown Source:0)
at com.example.david.mykotlinfirebaseintro.MainActivity$onCreate$1.onClick(MainActivity.kt:37)
at android.view.View.performClick(View.java:6597)
at android.view.View.performClickInternal(View.java:6574)
at android.view.View.access$3100(View.java:778)
at android.view.View$PerformClick.run(View.java:25885)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
答案 0 :(得分:0)
带有条件的环绕代码单击按钮
if (email != null || !email.isEmpty()) {
//your positive code
} else {
//your negative code
}
答案 1 :(得分:0)
以这种方式; email和pwd变量会在第一次启动时填充。您所做的更改不会影响变量。
您必须将此行移动到clicklistener中。
//Create new User
var email = emailID.text.toString().trim()
var pwd = passwordID.text.toString().trim()