无法从函数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(电子邮件,密码)
谢谢,所以本质上,我需要在函数外部声明它作为函数的一部分?我想这是有道理的。非常感谢。