无法从功能Kotlin / Android Studio返回字符串

时间:2018-08-24 17:58:52

标签: android function kotlin return

我有一个调用函数的按钮:

    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用于下一个函数,而不将我的所有函数嵌套到一个巨型函数中。

2 个答案:

答案 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) }