java - 为什么每次打开应用程序时我的 Firebase 实时数据库数据都会重置?
问题描述
我正在尝试将一些数据上传到我的 firebase 实时数据库,但是每次我启动应用程序时,数据都会重置并且我的数据库是空的。为什么是这样?
这一切都在一个片段内完成。
我还为 listView/ 创建了一个 POJO Months 类和一个 MonthList 类
以下是有关 firebase 的所有代码。
DatabaseReference databaseReference;
EditText editText;
public void addMonth(){
String id = databaseReference.getKey();
String name = editText.getText().toString();
boolean ifPaid = true;
Months months = new Months(name, id, ifPaid);
databaseReference.push().setValue(months);
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
v = inflater.inflate(R.layout.fragment_to_do,container,false);
setHasOptionsMenu(true);
final ListView listView = v.findViewById(R.id.listView);
databaseReference = FirebaseDatabase.getInstance().getReference("month");
editText = v.findViewById(R.id.editText);
monthsList = new ArrayList<>();
//button that triggers addMonth() method.
Button upload = v.findViewById(R.id.upload);
upload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addMonth();
}
});
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
monthsList.clear();
for (DataSnapshot monthsSnapshot : dataSnapshot.getChildren()){
Months months = monthsSnapshot.getValue(Months.class);
monthsList.add(months);
}
MonthList adapter = new MonthList(getActivity(), monthsList);
listView.setAdapter(adapter);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
return v;
}
解决方案
推荐阅读
- xamarin - Xamarin.Forms FlyoutPage 不适用于 Prism
- typescript - 从特定的 node_modules 包导入 d.ts 定义
- flutter - 动画列表多个小部件使用相同的 GlobalKey
- r - 为什么在 r 中使用 read.csv 时没有得到“使用列规范解析”?
- oracle12c - 如何旋转 bi_server.out 日志文件
- python - 如何对 MinMaxScaler 进行非规范化?
- python - 如何从 MySQL 数据库中插入和获取数据并将其发送到 Discord
- sql - 在没有聚合函数的情况下显示行到列
- python - 根据范围将列表拆分为多个列表:PYTHON
- settings - Moodle 显示通过并重新尝试消息