为什么 firebaseuser.getdisplay 名称即使不包含名称也会返回一些内容?

Why firebaseuser.getdisplay name is returning something even it doesn't contain a name?

这是我的 onStart 方法我想在用户更新他的个人资料名称时打开 activity

@Override
protected void onStart() {
    super.onStart();
    FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
    if (firebaseUser != null) {
        if (firebaseUser.getDisplayName() == null) {
            startActivity(new Intent(WorkerMaps.this, FirstWorkerInformation.class));
            finish();
        }
    }

}

首先,问题中没有任何地方提到你的实际问题。

因此,您的问题是即使 displayName() 不包含名称,它仍然 return 是不为空的东西。

因此,您可以为此修改您的代码并使用 isBlank()

if (firebaseUser.getDisplayName() == null || firebaseUser.getDisplayName().isBlank()) {

现在,这会做什么,它还会检查您的 displayName 是否仅包含空格而没有字符,如果为真,它将进​​入您的 if 范围。

您可以阅读更多关于 isBlank() here

更新:因为 isBlank()StringUtils 的一部分,而且它是 Apache 提供的一个单独的库,您可以按照回答 here.
[ 导入该库=40=] 但如果你不想使用单独的库,你也可以使用 trim() 来删除字符串起点和终点的空格,如:
" Name " -> "Name"
" " -> ""

所以,你可以用它做什么,你可以检查它的长度,如果它是 0 ,那么它将 return 为真,就像 " " 的情况一样。你可以这样做:

if (firebaseUser.getDisplayName() == null || firebaseUser.getDisplayName().trim().length() == 0){