我有一个调用函数的按钮:
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用于下一个函数,而不将我的所有函数嵌套到一个巨型函数中。
答案 0 :(得分:0)
您的email:String,password:String
函数中有两个registerUser
参数,因此它也必须返回两个参数。
这里;
var uid = "test"
return uid
您只是返回uid
,因此将其更改为两个参数作为return即可使用:
val uid = registerUser(email, password)
return uid
答案 1 :(得分:0)
您的名为registerUser的函数返回一个uid,但您并未将其存储在任何地方。为了使用uid,您必须存储它,否则,如果不需要存储它,则可能不应该从方法中返回它。
如果您需要存储它,只需将其存储在这样的非可变变量中:
val uid = registerUser(email, password)
如果您不想存储uid,而只想打印日志,则可以使用以下方法:
registerUser(email, password).also { Log.d(Tag,it) }