私のFirebaseチャットアプリケーションでは、ユーザーがGoogle、電子メール、パスワード、または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);
どのように私は、このデータが保存されているすべての場所で更新されないデータを取得します?
私はあなたの答えを読むときに私はそれを考え出した。それは私の心を開いたゲスト、はい私の間違いはちょうど1つの場所でそれを呼んでいた。私はちょうど存在するすべての場所で自分のデータを再度呼び、新しい価値を設定しました。 –