как удалить данные из одного фрагмента, которые должны быть отражены в других фрагментах в Google Firebase - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть 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;

Фрагмент группового формирования

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();
               }
           });
        }
    });
}

1 Ответ

0 голосов
/ 04 апреля 2019

Считайте список из 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}")
            }
        }
    })

Часто полезно видеть фактические изменения в результатах запроса между моментальными снимками запроса, а не просто использовать весь моментальный снимок запроса.Например, вам может потребоваться сохранить кэш при добавлении, удалении и изменении отдельных документов.

Ссылка: Просмотр изменений между снимками в Firestore

Пожалуйста, проголосуйте заесли вы считаете этот ответ полезным ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...