How to update listview after deleting data in firebase?











up vote
0
down vote

favorite












This is my TimeTableActivity.java, which displays listview of items(individual's schedules)



package com.example.jongha.meetingorganizer;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.ListView;

import com.google.firebase.database.ChildEventListener;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

import java.util.ArrayList;
import java.util.List;

public class TimeTableActivity extends AppCompatActivity {

private FloatingActionButton addScheduleBtn;

DatabaseReference dref;
ListView listview;


@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_timetable);

//listview 연결, adapter 생성과 연결, dref연결
listview=(ListView)findViewById(R.id.schedule_list_view);
final ScheduleListViewAdapter adapter = new ScheduleListViewAdapter();
listview.setAdapter(adapter);
dref = FirebaseDatabase.getInstance().getReference("timetables/test1999");
//dref change to path of logged-in user하기


//realtime database 데이터 변화에 대한 반응
dref.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
adapter.addItem(dataSnapshot.getValue(ScheduleDTO.class));
adapter.notifyDataSetChanged();
}

@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

}

@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
adapter.removeItem(dataSnapshot.getValue(ScheduleDTO.class));
adapter.notifyDataSetChanged();
}

@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});


//listview의 스케쥴 각각에 대한 onclicklistner

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ScheduleDTO item = (ScheduleDTO) parent.getItemAtPosition(position);

Intent intent = new Intent(TimeTableActivity.this, DisplayScheduleActivity.class);
String infoOfSchedule = new String {item.getActivityName(), item.getStartHour(), item.getStartMin(), item.getEndHour(), item.getEndMin(), item.getDayOfWeek()};
intent.putExtra("dataStrings", infoOfSchedule);
startActivity(intent);
}
});


//스케쥴 추가 버튼 onclicklistner
addScheduleBtn = findViewById(R.id.add_schedule_btn);
addScheduleBtn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
startActivity(new Intent(TimeTableActivity.this, NewScheduleActivity.class));
}
});
}
}


and this is my custom listview adapter, ScheduleListViewAdapter.java



package com.example.jongha.meetingorganizer;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import java.util.ArrayList;

public class ScheduleListViewAdapter extends BaseAdapter {


private ArrayList<ScheduleDTO> listViewItemList = new ArrayList<ScheduleDTO>();

//ScheduleListViewAdapter 생성
public ScheduleListViewAdapter() {
}

@Override
public int getCount() {
return listViewItemList.size();
}

@Override
public Object getItem(int position) {
return listViewItemList.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
final int pos = position;
final Context context = parent.getContext();

// "layout_schedule_listview.xml" Layout을 inflate하여 convertView 참조 획득.
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.layout_schedule_listview, parent, false);
}

// 화면에 표시될 View(Layout이 inflate된)으로부터 위젯에 대한 참조 획득
TextView titleTextView = (TextView) convertView.findViewById(R.id.scheduleListNameView) ;
TextView timeTextView = (TextView) convertView.findViewById(R.id.scheduleListTimeView) ;

// Data Set(listViewItemList)에서 position에 위치한 데이터 참조 획득
ScheduleDTO listViewItem = listViewItemList.get(position);

// 아이템 내 각 위젯에 데이터 반영
titleTextView.setText(listViewItem.getActivityName());
timeTextView.setText(listViewItem.getListViewTime());

return convertView;
}

public void addItem(ScheduleDTO gotItem) {
listViewItemList.add(gotItem);
}

public void removeItem(ScheduleDTO gotItem){
listViewItemList.remove(gotItem);
}
}


My problem is that though delete function being called in other activity is running correctly(deleting data in firebase console), and listview is well-updated after TimeTableActivity being called again after TimeTableActivity being finished, listview is not being updated properly right after deleting item.



In fact, i had a typo in TimetableActivity.java at first.
I typed
adapter.addItem(....) instead of adapter.removeItem(....) in onChlidRemoved method.
In this situation, listview was updated, containing two same item.
For example, if i had item A and it being deleted, listview was immediately updated and displaying two A.
However, after changing to adapter.removeItem(...), listview is not being updated immediately after deleting item.



How should i fix this problem??










share|improve this question
























  • I can't get your question. Can you write in other words?
    – Шах
    yesterday















up vote
0
down vote

favorite












This is my TimeTableActivity.java, which displays listview of items(individual's schedules)



package com.example.jongha.meetingorganizer;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.ListView;

import com.google.firebase.database.ChildEventListener;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

import java.util.ArrayList;
import java.util.List;

public class TimeTableActivity extends AppCompatActivity {

private FloatingActionButton addScheduleBtn;

DatabaseReference dref;
ListView listview;


@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_timetable);

//listview 연결, adapter 생성과 연결, dref연결
listview=(ListView)findViewById(R.id.schedule_list_view);
final ScheduleListViewAdapter adapter = new ScheduleListViewAdapter();
listview.setAdapter(adapter);
dref = FirebaseDatabase.getInstance().getReference("timetables/test1999");
//dref change to path of logged-in user하기


//realtime database 데이터 변화에 대한 반응
dref.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
adapter.addItem(dataSnapshot.getValue(ScheduleDTO.class));
adapter.notifyDataSetChanged();
}

@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

}

@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
adapter.removeItem(dataSnapshot.getValue(ScheduleDTO.class));
adapter.notifyDataSetChanged();
}

@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});


//listview의 스케쥴 각각에 대한 onclicklistner

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ScheduleDTO item = (ScheduleDTO) parent.getItemAtPosition(position);

Intent intent = new Intent(TimeTableActivity.this, DisplayScheduleActivity.class);
String infoOfSchedule = new String {item.getActivityName(), item.getStartHour(), item.getStartMin(), item.getEndHour(), item.getEndMin(), item.getDayOfWeek()};
intent.putExtra("dataStrings", infoOfSchedule);
startActivity(intent);
}
});


//스케쥴 추가 버튼 onclicklistner
addScheduleBtn = findViewById(R.id.add_schedule_btn);
addScheduleBtn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
startActivity(new Intent(TimeTableActivity.this, NewScheduleActivity.class));
}
});
}
}


and this is my custom listview adapter, ScheduleListViewAdapter.java



package com.example.jongha.meetingorganizer;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import java.util.ArrayList;

public class ScheduleListViewAdapter extends BaseAdapter {


private ArrayList<ScheduleDTO> listViewItemList = new ArrayList<ScheduleDTO>();

//ScheduleListViewAdapter 생성
public ScheduleListViewAdapter() {
}

@Override
public int getCount() {
return listViewItemList.size();
}

@Override
public Object getItem(int position) {
return listViewItemList.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
final int pos = position;
final Context context = parent.getContext();

// "layout_schedule_listview.xml" Layout을 inflate하여 convertView 참조 획득.
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.layout_schedule_listview, parent, false);
}

// 화면에 표시될 View(Layout이 inflate된)으로부터 위젯에 대한 참조 획득
TextView titleTextView = (TextView) convertView.findViewById(R.id.scheduleListNameView) ;
TextView timeTextView = (TextView) convertView.findViewById(R.id.scheduleListTimeView) ;

// Data Set(listViewItemList)에서 position에 위치한 데이터 참조 획득
ScheduleDTO listViewItem = listViewItemList.get(position);

// 아이템 내 각 위젯에 데이터 반영
titleTextView.setText(listViewItem.getActivityName());
timeTextView.setText(listViewItem.getListViewTime());

return convertView;
}

public void addItem(ScheduleDTO gotItem) {
listViewItemList.add(gotItem);
}

public void removeItem(ScheduleDTO gotItem){
listViewItemList.remove(gotItem);
}
}


My problem is that though delete function being called in other activity is running correctly(deleting data in firebase console), and listview is well-updated after TimeTableActivity being called again after TimeTableActivity being finished, listview is not being updated properly right after deleting item.



In fact, i had a typo in TimetableActivity.java at first.
I typed
adapter.addItem(....) instead of adapter.removeItem(....) in onChlidRemoved method.
In this situation, listview was updated, containing two same item.
For example, if i had item A and it being deleted, listview was immediately updated and displaying two A.
However, after changing to adapter.removeItem(...), listview is not being updated immediately after deleting item.



How should i fix this problem??










share|improve this question
























  • I can't get your question. Can you write in other words?
    – Шах
    yesterday













up vote
0
down vote

favorite









up vote
0
down vote

favorite











This is my TimeTableActivity.java, which displays listview of items(individual's schedules)



package com.example.jongha.meetingorganizer;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.ListView;

import com.google.firebase.database.ChildEventListener;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

import java.util.ArrayList;
import java.util.List;

public class TimeTableActivity extends AppCompatActivity {

private FloatingActionButton addScheduleBtn;

DatabaseReference dref;
ListView listview;


@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_timetable);

//listview 연결, adapter 생성과 연결, dref연결
listview=(ListView)findViewById(R.id.schedule_list_view);
final ScheduleListViewAdapter adapter = new ScheduleListViewAdapter();
listview.setAdapter(adapter);
dref = FirebaseDatabase.getInstance().getReference("timetables/test1999");
//dref change to path of logged-in user하기


//realtime database 데이터 변화에 대한 반응
dref.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
adapter.addItem(dataSnapshot.getValue(ScheduleDTO.class));
adapter.notifyDataSetChanged();
}

@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

}

@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
adapter.removeItem(dataSnapshot.getValue(ScheduleDTO.class));
adapter.notifyDataSetChanged();
}

@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});


//listview의 스케쥴 각각에 대한 onclicklistner

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ScheduleDTO item = (ScheduleDTO) parent.getItemAtPosition(position);

Intent intent = new Intent(TimeTableActivity.this, DisplayScheduleActivity.class);
String infoOfSchedule = new String {item.getActivityName(), item.getStartHour(), item.getStartMin(), item.getEndHour(), item.getEndMin(), item.getDayOfWeek()};
intent.putExtra("dataStrings", infoOfSchedule);
startActivity(intent);
}
});


//스케쥴 추가 버튼 onclicklistner
addScheduleBtn = findViewById(R.id.add_schedule_btn);
addScheduleBtn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
startActivity(new Intent(TimeTableActivity.this, NewScheduleActivity.class));
}
});
}
}


and this is my custom listview adapter, ScheduleListViewAdapter.java



package com.example.jongha.meetingorganizer;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import java.util.ArrayList;

public class ScheduleListViewAdapter extends BaseAdapter {


private ArrayList<ScheduleDTO> listViewItemList = new ArrayList<ScheduleDTO>();

//ScheduleListViewAdapter 생성
public ScheduleListViewAdapter() {
}

@Override
public int getCount() {
return listViewItemList.size();
}

@Override
public Object getItem(int position) {
return listViewItemList.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
final int pos = position;
final Context context = parent.getContext();

// "layout_schedule_listview.xml" Layout을 inflate하여 convertView 참조 획득.
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.layout_schedule_listview, parent, false);
}

// 화면에 표시될 View(Layout이 inflate된)으로부터 위젯에 대한 참조 획득
TextView titleTextView = (TextView) convertView.findViewById(R.id.scheduleListNameView) ;
TextView timeTextView = (TextView) convertView.findViewById(R.id.scheduleListTimeView) ;

// Data Set(listViewItemList)에서 position에 위치한 데이터 참조 획득
ScheduleDTO listViewItem = listViewItemList.get(position);

// 아이템 내 각 위젯에 데이터 반영
titleTextView.setText(listViewItem.getActivityName());
timeTextView.setText(listViewItem.getListViewTime());

return convertView;
}

public void addItem(ScheduleDTO gotItem) {
listViewItemList.add(gotItem);
}

public void removeItem(ScheduleDTO gotItem){
listViewItemList.remove(gotItem);
}
}


My problem is that though delete function being called in other activity is running correctly(deleting data in firebase console), and listview is well-updated after TimeTableActivity being called again after TimeTableActivity being finished, listview is not being updated properly right after deleting item.



In fact, i had a typo in TimetableActivity.java at first.
I typed
adapter.addItem(....) instead of adapter.removeItem(....) in onChlidRemoved method.
In this situation, listview was updated, containing two same item.
For example, if i had item A and it being deleted, listview was immediately updated and displaying two A.
However, after changing to adapter.removeItem(...), listview is not being updated immediately after deleting item.



How should i fix this problem??










share|improve this question















This is my TimeTableActivity.java, which displays listview of items(individual's schedules)



package com.example.jongha.meetingorganizer;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.ListView;

import com.google.firebase.database.ChildEventListener;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

import java.util.ArrayList;
import java.util.List;

public class TimeTableActivity extends AppCompatActivity {

private FloatingActionButton addScheduleBtn;

DatabaseReference dref;
ListView listview;


@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_timetable);

//listview 연결, adapter 생성과 연결, dref연결
listview=(ListView)findViewById(R.id.schedule_list_view);
final ScheduleListViewAdapter adapter = new ScheduleListViewAdapter();
listview.setAdapter(adapter);
dref = FirebaseDatabase.getInstance().getReference("timetables/test1999");
//dref change to path of logged-in user하기


//realtime database 데이터 변화에 대한 반응
dref.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
adapter.addItem(dataSnapshot.getValue(ScheduleDTO.class));
adapter.notifyDataSetChanged();
}

@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

}

@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
adapter.removeItem(dataSnapshot.getValue(ScheduleDTO.class));
adapter.notifyDataSetChanged();
}

@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {

}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});


//listview의 스케쥴 각각에 대한 onclicklistner

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ScheduleDTO item = (ScheduleDTO) parent.getItemAtPosition(position);

Intent intent = new Intent(TimeTableActivity.this, DisplayScheduleActivity.class);
String infoOfSchedule = new String {item.getActivityName(), item.getStartHour(), item.getStartMin(), item.getEndHour(), item.getEndMin(), item.getDayOfWeek()};
intent.putExtra("dataStrings", infoOfSchedule);
startActivity(intent);
}
});


//스케쥴 추가 버튼 onclicklistner
addScheduleBtn = findViewById(R.id.add_schedule_btn);
addScheduleBtn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
startActivity(new Intent(TimeTableActivity.this, NewScheduleActivity.class));
}
});
}
}


and this is my custom listview adapter, ScheduleListViewAdapter.java



package com.example.jongha.meetingorganizer;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import java.util.ArrayList;

public class ScheduleListViewAdapter extends BaseAdapter {


private ArrayList<ScheduleDTO> listViewItemList = new ArrayList<ScheduleDTO>();

//ScheduleListViewAdapter 생성
public ScheduleListViewAdapter() {
}

@Override
public int getCount() {
return listViewItemList.size();
}

@Override
public Object getItem(int position) {
return listViewItemList.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
final int pos = position;
final Context context = parent.getContext();

// "layout_schedule_listview.xml" Layout을 inflate하여 convertView 참조 획득.
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.layout_schedule_listview, parent, false);
}

// 화면에 표시될 View(Layout이 inflate된)으로부터 위젯에 대한 참조 획득
TextView titleTextView = (TextView) convertView.findViewById(R.id.scheduleListNameView) ;
TextView timeTextView = (TextView) convertView.findViewById(R.id.scheduleListTimeView) ;

// Data Set(listViewItemList)에서 position에 위치한 데이터 참조 획득
ScheduleDTO listViewItem = listViewItemList.get(position);

// 아이템 내 각 위젯에 데이터 반영
titleTextView.setText(listViewItem.getActivityName());
timeTextView.setText(listViewItem.getListViewTime());

return convertView;
}

public void addItem(ScheduleDTO gotItem) {
listViewItemList.add(gotItem);
}

public void removeItem(ScheduleDTO gotItem){
listViewItemList.remove(gotItem);
}
}


My problem is that though delete function being called in other activity is running correctly(deleting data in firebase console), and listview is well-updated after TimeTableActivity being called again after TimeTableActivity being finished, listview is not being updated properly right after deleting item.



In fact, i had a typo in TimetableActivity.java at first.
I typed
adapter.addItem(....) instead of adapter.removeItem(....) in onChlidRemoved method.
In this situation, listview was updated, containing two same item.
For example, if i had item A and it being deleted, listview was immediately updated and displaying two A.
However, after changing to adapter.removeItem(...), listview is not being updated immediately after deleting item.



How should i fix this problem??







android listview






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited yesterday









shashank chandak

15611




15611










asked yesterday









PAKALGUKSU

1




1












  • I can't get your question. Can you write in other words?
    – Шах
    yesterday


















  • I can't get your question. Can you write in other words?
    – Шах
    yesterday
















I can't get your question. Can you write in other words?
– Шах
yesterday




I can't get your question. Can you write in other words?
– Шах
yesterday

















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53238085%2fhow-to-update-listview-after-deleting-data-in-firebase%23new-answer', 'question_page');
}
);

Post as a guest





































active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes
















 

draft saved


draft discarded



















































 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53238085%2fhow-to-update-listview-after-deleting-data-in-firebase%23new-answer', 'question_page');
}
);

Post as a guest




















































































Popular posts from this blog

Florida Star v. B. J. F.

Danny Elfman

Retrieve a Users Dashboard in Tumblr with R and TumblR. Oauth Issues