【发布时间】:2018-06-27 13:19:04
【问题描述】:
我正在尝试根据登录用户的性别向他们显示欢迎信息。如果是“男性”,则为 setText("Hello Sir, your mail is: " + user.getEmail()),否则为 setText("Hello Madam, your mail is: " + user.getEmail())。这是我的数据库结构:
这是我正在处理的配置文件活动 java:
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.support.v7.app.AppCompatActivity;
import com.firebase.client.DataSnapshot;
import com.firebase.client.Firebase;
import com.firebase.client.FirebaseError;
import com.firebase.client.ValueEventListener;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
public class ProfileActivity extends AppCompatActivity {
TextView textViewUserEmail;
private FirebaseDatabase mFirebaseDatabase;
private FirebaseAuth mAuth;
public DatabaseReference myRef;
public String userID;
@Override
protected void onCreate(Bundle saveInstanceState) {
super.onCreate(saveInstanceState);
setContentView(R.layout.activity_profile);
mAuth = FirebaseAuth.getInstance();
Firebase.setAndroidContext(this);
mFirebaseDatabase = FirebaseDatabase.getInstance();
myRef = mFirebaseDatabase.getReference();
final FirebaseUser user = mAuth.getCurrentUser();
userID = user.getUid();
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("UsersMale");
textViewUserEmail = (TextView) findViewById(R.id.textViewUserEmail);
loadUserInformation();
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String myStrign = dataSnapshot.getValue(String.class);
if (user.isEmailVerified() && myStrign.equals("male")) {
textViewUserEmail.setText("Hello Sir, your mail is: " + user.getEmail());
} else {
textViewUserEmail.setText("Hello Madam, your mail is: " + user.getEmail());
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {}
});
}
}
}
代码返回错误。你能告诉我我在这里做错了什么吗?提前致谢。
【问题讨论】:
-
发生这种情况是因为查询在您将其解析为字符串时返回了一个对象。
String myStrign = dataSnapshot.getValue(String.class);。您需要定义一个可以转换您返回的快照的 POJO。 -
感谢您的回答。你能举一个答案的例子吗? @M.WaqasPervez
-
此外,您的 Firebase 结构中没有任何节点具有密钥
Users。 -
你是不是假设了用户的性别?
-
哦!是的,那是一个错误。 @M.WaqasPervez
标签: java android firebase firebase-realtime-database