如何从一个片段中删除数据,这些片段应该反映在google firebase中的其他片段中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从一个片段中删除数据,这些片段应该反映在google firebase中的其他片段中相关的知识,希望对你有一定的参考价值。
我有3个片段Edit_profile,Group_formation,Available_students编辑配置文件有一个集合用户(由卷号组成),该集合显示在available_students片段中。我希望如果在组形成(插入卷)中插入一些用户数据并在提交后这些数据不应该显示在available_students片段下但是那些也不应该从用户集合中删除。是否可能?
Available_students片段
mfirestore.collection("users").addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@javax.annotation.Nullable QuerySnapshot queryDocumentSnapshots, @javax.annotation.Nullable FirebaseFirestoreException e) {
if (e != null) {
Log.d(TAG, "Error" + e.getMessage());
}
for (DocumentChange doc : queryDocumentSnapshots.getDocumentChanges()) {
if (doc.getType() == DocumentChange.Type.ADDED) {
Users users = doc.getDocument().toObject(Users.class);
usersList.add(users);
userListAdapter.notifyDataSetChanged();
}
}
}
});
return v;
GroupFormation片段
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
view.findViewById(R.id.submit).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String roll1=ET1.getText().toString();
String roll2=ET2.getText().toString();
String roll3=ET3.getText().toString();
String roll4=ET4.getText().toString();
String roll5=ET5.getText().toString();
Map<String,String> usermap= new HashMap<>();
usermap.put("Student1",roll1);
usermap.put("Student2",roll2);
usermap.put("Student3",roll3);
usermap.put("Student4",roll4);
usermap.put("Student5",roll5);
mfirestore.collection("Groups").add(usermap).addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
@Override
public void onSuccess(DocumentReference documentReference) {
Toast.makeText(getActivity(), "registered", Toast.LENGTH_SHORT).show();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
String error=e.getMessage();
Toast.makeText(getActivity(), "error"+error, Toast.LENGTH_SHORT).show();
}
});
}
});
}
答案
使用给定的代码示例从firestore读取列表:
db.collection("cities")
.whereEqualTo("state", "CA")
.addSnapshotListener(EventListener<QuerySnapshot> { snapshots, e ->
if (e != null) {
Log.w(TAG, "listen:error", e)
return@EventListener
}
for (dc in snapshots!!.documentChanges) {
when (dc.type) {
DocumentChange.Type.ADDED -> Log.d(TAG, "New city: ${dc.document.data}")
DocumentChange.Type.MODIFIED -> Log.d(TAG, "Modified city: ${dc.document.data}")
DocumentChange.Type.REMOVED -> Log.d(TAG, "Removed city: ${dc.document.data}")
}
}
})
查看查询快照之间查询结果的实际更改通常很有用,而不是简单地使用整个查询快照。例如,您可能希望在添加,删除和修改单个文档时维护缓存。
链接:View changes between snapshots in Firestore
如果您认为这个答案有用,请投票....
以上是关于如何从一个片段中删除数据,这些片段应该反映在google firebase中的其他片段中的主要内容,如果未能解决你的问题,请参考以下文章