无法从函数Kotlin/Android Studio返回字符串
我有一个调用函数的按钮:无法从函数Kotlin/Android Studio返回字符串,android,function,kotlin,return,Android,Function,Kotlin,Return,我有一个调用函数的按钮: btnRegistrationRegister.setOnClickListener { val email = etRegistrationEmail.text.toString() val password = etRegistrationPassword.text.toString() registerUser(email, password) Log.d(TAG,uid) 我有一个返
btnRegistrationRegister.setOnClickListener {
val email = etRegistrationEmail.text.toString()
val password = etRegistrationPassword.text.toString()
registerUser(email, password)
Log.d(TAG,uid)
我有一个返回uid的函数:
fun registerUser(email:String,password:String):String{
FirebaseAuth.getInstance().createUserWithEmailAndPassword(email, password)
var uid = "test"
return uid
}
问题是我仍然无法访问变量uid,例如在下一行中
Log.d(Tag,uid)
我意识到这是相当入门级的东西,所以我显然错过了一个关键点。uid仍然是“未解决的引用错误”
我正在尝试获取用于下一个函数的uid,而不是将我的所有函数嵌套到一个巨大的函数中。您的
registerUser
函数中有两个电子邮件:String、密码:String
参数,因此,它还必须返回两个参数
在这里
var uid = "test"
return uid
您只是返回uid
,因此将其更改为两个参数作为return,然后可以使用:
val uid = registerUser(email, password)
return uid
名为registerUser的函数返回uid,但您没有将其存储在任何位置。为了使用uid,您必须存储它,否则如果您不需要存储它,那么您可能不应该从该方法返回它 如果需要存储它,只需将其存储在不可变变量中,如下所示:
val uid = registerUser(email, password)
如果您不想存储uid,只想打印日志,则可以使用以下方法:
registerUser(email, password).also { Log.d(Tag,it) }
val uid=registerUser(电子邮件,密码)
谢谢,所以本质上,我需要在函数外部声明它作为函数的一部分?我想这是有道理的。非常感谢。