我想在检查用户是否通过身份验证后执行一个代码块。
inline fun <T : Any, R> T?.isUserAuthenticated(callback: (T) -> R) {
FirebaseAuth.getInstance().currentUser?.let {
//Function call
} ?: kotlin.run {
FirebaseAuth.getInstance().signInAnonymously().addOnSuccessListener {
//Function call
}
}
这种方法不起作用,但有没有其他选择呢?
1条答案
按热度按时间l0oc07j21#
在以下情况下,Kotlin中的内联函数应优先于常规函数使用:
否则,内联may cause the generated code to grow。很可能还有其他情况值得使用内联函数,但我只添加了其中的几个(重要的)函数。
在检查用户是否通过身份验证时,我宁愿创建一个如下所示的常规函数:
并使用它:
或者,如果使用Kotlin协程:
所以这是一个方法或其他。
我会将这个函数添加到一个存储库类中,这样它就可以在整个项目中使用。
如果您有兴趣查看一些代码,我建议您查看以下资源:
这是对应的repo。