0
在我的Firebase聊天应用程序中,当用户使用谷歌,电子邮件和密码或Facebook登录后,用户注册时使用setValue插入用户名和个人资料照片的数据。然后,在我的个人资料活动中,我使用valueEventListener来显示用户照片和用户名,如果我在配置文件活动中再次使用setValue方法,则可以更新。但问题是它只更新当前数据,用户发布内容或评论的所有地方,用户名和个人资料照片保持不变。有什么方法可以在用户在配置文件活动中更新其信息时更新数据库中的所有内容?如何更新Firebase数据库
下面是我插入数据
StorageReference filepath = mStorageImage.child(mImageUri.getLastPathSegment());
filepath.putFile(mImageUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
String downloadUri = taskSnapshot.getDownloadUrl().toString();
mDatabaseUsers.child(user_id).child("name").setValue(name);
mDatabaseUsers.child(user_id).child("timestampjoined").setValue(timestamp);
mDatabaseUsers.child(user_id).child("image").setValue(downloadUri);
mProgress.dismiss();
然后在我的个人资料活动我得到的数据
mDatabaseUser.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String timestampjoined = (String) dataSnapshot.child("timestampjoined").getValue();
String profilename = (String) dataSnapshot.child("name").getValue();
String profilepicture = (String) dataSnapshot.child("image").getValue();
Glide.with(DDiaryProfileActivity.this).load(profilepicture)
.fitCenter().diskCacheStrategy(DiskCacheStrategy.ALL).into(mProfilePicture);
((CollapsingToolbarLayout) findViewById(R.id.toolbar_profile)).setCollapsedTitleTextAppearance(R.style.CollapsingToolBar);;
((CollapsingToolbarLayout) findViewById(R.id.toolbar_profile)).setTitle(profilename);
mTimeJoined.setText("Date joined : " + timestampjoined);
mProfileName.setText(profilename);
如何在所有地方更新,其中该数据被保存?
谢谢,当我读到你的答案时,我发现它出来了,它打开了我的想法,是的,我的错误只是在一个地方调用它。我只是在所有存在的地方再次打电话给我的数据,并设置了新的价值。 –