为什么 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){
这是我的 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){