程序员,对于android studio和java来说,我是一个陌生的人,在这种情况下,我试图上传检索到的用户信息并将其存储在firebase数据库中。检索过程成功,并且在登录后可以看到检索URL。但是,String pathToProfile
没有分配URL,当我检查日志时,它为null。预先感谢!
全局声明:
String pathToProfile; Map<String, Object> UserInfo = new HashMap<>();
检索下载URL的功能
// retrieved URL should be saved in user document private void retrieveProfileViaURL () { profileRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() { @Override public void onSuccess(Uri uri) { pathToProfile = uri.toString(); UserInfo.put(PROFILE_URL, pathToProfile); Log.d(TAG, "retrieve profile image successful" + pathToProfile); } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception exception) { Log.d(TAG, "retrieve profile image failure"); // pathToProfile = "uri download unsuccessful"; } }); }
将用户信息上传到firebase的功能
private void uploadUserInfo(String user, String bioInfo) {
// CollectionReference users = db.collection("users");
String UID = getUserID();
retrieveProfileViaURL();
// UserInfo.put(USERID, UID);
UserInfo.put(USERNAME, user);
UserInfo.put(BIO, bioInfo);
mDocRef.collection("users").document(UID).set(UserInfo)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Log.d(USER_INFO, "Document has been saved");
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.w(USER_INFO, "Document was not saved!", e);
}
});
}
程序员,对于android studio和java来说,我是一个陌生的人,在这种情况下,我试图上传检索到的用户信息并将其存储在firebase数据库中。检索过程成功,并且检索...
Firebase数据库中的所有数据都是异步读取的。您无法在通话之外获取值。这就是为什么您的pathToProfile
显示为空。