【发布时间】:2019-08-04 07:01:10
【问题描述】:
在 iOS 上,我们可以轻松检索不同提供商 ID 的常量,参见 What is the full list of provider id's for firebase.UserInfo.providerId?
但是我没有看到这些适用于 Android (Kotlin) 的常量?
【问题讨论】:
标签: firebase firebase-authentication
在 iOS 上,我们可以轻松检索不同提供商 ID 的常量,参见 What is the full list of provider id's for firebase.UserInfo.providerId?
但是我没有看到这些适用于 Android (Kotlin) 的常量?
【问题讨论】:
标签: firebase firebase-authentication
我找到了:
import com.google.firebase.auth.EmailAuthProvider
import com.google.firebase.auth.FacebookAuthProvider
import com.google.firebase.auth.FirebaseUser
import com.google.firebase.auth.GoogleAuthProvider
fun FirebaseUser.loginType(): LoginType {
if (isAnonymous) {
return LoginType.Anonymous
}
Log.debug("providerId: $providerId")
Log.debug("EmailAuthProvider: ${EmailAuthProvider.PROVIDER_ID}")
Log.debug("GoogleAuthProvider: ${GoogleAuthProvider.PROVIDER_ID}")
Log.debug("FacebookAuthProvider: ${FacebookAuthProvider.PROVIDER_ID}")
loop@ for (userInfo in providerData) {
when (userInfo.providerId) {
EmailAuthProvider.PROVIDER_ID -> return LoginType.Email
GoogleAuthProvider.PROVIDER_ID -> return LoginType.Google
FacebookAuthProvider.PROVIDER_ID -> return LoginType.Facebook
else -> continue@loop
}
}
return LoginType.Unknown
}
fun FirebaseUser.loggedInWith(): String {
return when (loginType()) {
LoginType.Anonymous -> "Anonymous"
LoginType.Email -> email ?: "?"
LoginType.Facebook -> "Facebook"
LoginType.Google -> "Google"
LoginType.Unknown -> "???"
}
}
【讨论】: