我正在使用Firebase开发Android移动应用程序。
我可以获取名为“ EgeUniversity”的数据,但是当我将其与以下内容进行比较时:
String name = "EgeUniversity";
他们彼此不平等。
这是我获取用户大学名称的代码:
FirebaseDatabase firebaseDatabase3 = FirebaseDatabase.getInstance ();
DatabaseReference myRefNe2= firebaseDatabase3.getReference ("users");
myRefNe2.addValueEventListener ( new ValueEventListener ( ) {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
FirebaseAuth mAuth37 =FirebaseAuth.getInstance ();
String userNameCurrent = mAuth37.getCurrentUser ().getDisplayName ();
universityofUser24 = dataSnapshot.child ( userNameCurrent ).child ( "universityName" ).getValue (String.class);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText ( getApplicationContext (),databaseError.getMessage (),Toast.LENGTH_SHORT ).show ();
}
} );
然后我使用以下代码通过使用“大学名称”从firebase中获取另一个数据。
DatabaseReference newReference = firebaseDatabase.getReference ( "Posts/"+universityofUser24 );
newReference.addValueEventListener ( new ValueEventListener ( ) {...
但是这些值彼此不相等。 我的意思是
String nameofUni = "EgeUniversity";
nameofUni不等于UniversityofUser24。
但是当我使用“ Log.d”编写它们时,它们似乎完全相同。
我已经通过使用“ trim()”控制了空白空间。
答案 0 :(得分:0)
您说:
我将其与:
String name = "EgeUniversity";
那不是比较,而是分配。
要比较Java中的字符串是否相等,必须使用String.equals()
答案 1 :(得分:0)
trim()函数将删除字符串末尾或仅开头的空格! 如果要删除字符串中间的空格,将使用另一个函数,如:
str = str.replaceAll(" ", "");
要比较字符串,您将使用函数equals()而不是==:
boolean isSame = str1.equals(str2);