我已经实现了一个代码来创建一个名为“Users”的集合。代码运行正常但未将我的数据保存在我的控制台数据库中。
这是我的代码
user_profile.putFile(imageUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> uploadtask) {
String download_url = uploadtask.getResult().getDownloadUrl().toString();
if (uploadtask.isSuccessful()){
Map<String,Object> userMap = new HashMap<>();
userMap.put("name",user);
userMap.put("image",download_url);
firebaseFirestore.collection("Users")
.document(user_id).set(userMap)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Toast.makeText(RegistrationActivity.this, "Uploaded Successfully", Toast.LENGTH_SHORT).show();
SendToMain();
progressBar.setVisibility(View.INVISIBLE);
}
});
} else {
Toast.makeText(RegistrationActivity.this, "error: "+uploadtask.getException().getMessage(), Toast.LENGTH_SHORT).show();
}
}
});
我不知道出了什么问题以及导致问题的原因。请帮帮我。顺便说一句,我是firebase的新手。
答案 0 :(得分:0)
有时最好让Firebase商店为您自动创建有意义的documentID。
你可以尝试使用如下的add()函数。
firebaseFirestore.collection("Users").add(UserMap)
.addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
@Override
public void onSuccess(DocumentReference documentReference) {
Log.d(TAG, "DocumentSnapshot written with ID: " + documentReference.getId());
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.w(TAG, "Error adding document", e);
}
});