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);
如何在所有地方更新,其中該數據被保存?
謝謝,當我讀到你的答案時,我發現它出來了,它打開了我的想法,是的,我的錯誤只是在一個地方調用它。我只是在所有存在的地方再次打電話給我的數據,並設置了新的價值。 –