【发布时间】:2019-05-30 01:36:24
【问题描述】:
我有一个识别应用程序,它根据用户身份验证检索用户信息。我有用于电子邮件、idnumber 等信息的 TextViews。我有那些基于登录时的 uId 显示的信息。我正在尝试向 ImageView 显示该特定人的图片。此外,如果其他人登录,他们的照片也会显示。
这在 Android Studio 中运行。 Firebase 存储有一个带有 url 的图像。我创建了一个“图像”集合,该集合将与具有图像 url 字符串的 iud 对应(因此用户和图像的 uid 相同)。下面是其设置方式的图片。
下面是代码:
private ImageView ProfileImage;
private Button logout;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile);
fireStore = FirebaseFirestore.getInstance();
mAuth = FirebaseAuth.getInstance();
FirebaseUser user = mAuth.getCurrentUser();
userID = user.getUid();
Name = (TextView) findViewById(R.id.profileName);
Email = (TextView) findViewById(R.id.profileEmail);
TwoPNum = (TextView) findViewById(R.id.profileUid);
Meal = (TextView) findViewById(R.id.mealsNum);
PantherFunds = (TextView) findViewById(R.id.pFundsNum);
Expiration = (TextView) findViewById(R.id.expirationDate);
Campus = (TextView) findViewById(R.id.campusText);
ProfileImage = (ImageView) findViewById(R.id.profilePhoto);
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
//new
if (user != null) {
// User is signed in
Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid());
toastMessage("Successfully signed in with: " + user.getEmail());
} else {
// User is signed out
Log.d(TAG, "onAuthStateChanged:signed_out");
toastMessage("Successfully signed out.");
}
showData();
}
};
}
private void showData() {
DocumentReference user = fireStore.collection("users").document(userID);
user.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
DocumentSnapshot doc = task.getResult();
assert doc != null;
Name.setText(doc.getString("name"));
Email.setText(doc.getString("email"));
TwoPNum.setText(doc.getString("twop_num"));
Meal.setText(String.valueOf(doc.getLong("meals")));
PantherFunds.setText(String.valueOf(doc.getDouble("pfunds")));
Expiration.setText(getDate(Long.parseLong("expiration_date")));
Campus.setText(doc.getString("campus"));
}
}
});
}
**我的第一个想法是创建另一个方法 ShowImage 并基于 uId 对 Firestore 进行文档引用,然后拉图片的 url 并将该图片附加到 ImageView 就像我对所有其他用户信息所做的那样.没用。 **
【问题讨论】:
标签: java android firebase firebase-storage