Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
处理可在kotlin中返回null的对象_Kotlin_Kotlin Null Safety - Fatal编程技术网

处理可在kotlin中返回null的对象

处理可在kotlin中返回null的对象,kotlin,kotlin-null-safety,Kotlin,Kotlin Null Safety,我有java代码,我正在为我的项目转换成Kotlin Android Studio 3.0 我将其转换为koklin,如下所示: public String getAuthUserEmail() { FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); String email = null; if (user != null) { email =

我有java代码,我正在为我的项目转换成Kotlin

Android Studio 3.0
我将其转换为koklin,如下所示:

public String getAuthUserEmail() {
        FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
        String email = null;
        if (user != null) {
            email = user.getEmail();
        }
        return email;
}
   fun getAuthUserEmail(): String? {
       return FirebaseAuth.getInstance().currentUser.email?
    }
我只是想知道在我的kotlin版本中,用户是否恰好为null。我是否需要一个if条件来检查用户是否为null

我可以把这个函数作为一行

   fun getAuthUserEmail(): String? {
        val user: FirebaseUser? = FirebaseAuth.getInstance().currentUser

        return user?.email
    }
调用函数是否需要处理函数返回的空字符串

非常感谢你的建议

我是否需要一个if条件来检查用户是否为null

根据Firebase的文件:

返回当前登录的FirebaseUser,如果没有,则返回null

使用getCurrentUser()!=null以检查用户是否已登录

因此,这取决于您在没有登录用户时希望如何处理

如果希望函数是单行的,可以按如下方式链接它:

public String getAuthUserEmail() {
        FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
        String email = null;
        if (user != null) {
            email = user.getEmail();
        }
        return email;
}
   fun getAuthUserEmail(): String? {
       return FirebaseAuth.getInstance().currentUser.email?
    }
如果
currentUser
为null或
currentUser?,则返回null。电子邮件
为null



编辑:如果你只是想返回电子邮件,如果它存在。把它写在一行是可以的,因为它可以链接起来。

小建议。如果您确定对象不应该为null,但可以为null,请使用
将对象标记为不应为null的对象。若应用程序崩溃了,那个也没关系,因为它表明你们在某个地方做了不好的实现。查看实现的结构以了解对象是否应为null,许多开发人员过度使用
objet?。让
不要查看此对象是否应为null

我只是想知道在我的kotlin版本中,用户是否碰巧是 无效的我是否需要一个if条件来检查用户是否 空的

取决于您将如何处理场景,但您可以形成 您的数据如下所示:

fun getAuthUserEmail(): String? {
    return FirebaseAuth.getInstance().currentUser?.email
}