Обновление и удаление документов из двух разных коллекций одним щелчком мыши - PullRequest
1 голос
/ 14 мая 2019

Я создаю приложение, такое как olx, где, если вы загружаете объявление, оно публикуется в двух разных коллекциях, а именно: «Мои объявления», где объявления каждого вошедшего в систему пользователя размещаются под его идентификатором, и исследует коллекцию, где рекламаопубликовано для всех пользователей.Поэтому, если я хочу обновить или удалить объявление, оно должно быть удалено из обеих коллекций!URL изображения: https://imgur.com/a/HCKfGBb

String uid = user.getUid ();SellingDetails.put ("uid", uid);

            final CollectionReference reference = exploreAdDB.collection("cities/" + city + "/" + category);
            final CollectionReference myAdDocRef = myAdDB.collection("users/ads/"+uid);
            if (imageUri != null) {
                final StorageReference fileReference = mStorage.child(System.currentTimeMillis()
                        + "." + getFileExtension(imageUri));
                UploadTask uploadTask = fileReference.putFile(imageUri);
                Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
                    @Override
                    public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
                        if (!task.isSuccessful()) {
                            throw task.getException();
                        }
                        return fileReference.getDownloadUrl();
                    }
                }).addOnCompleteListener(new OnCompleteListener<Uri>() {
                    @Override
                    public void onComplete(@NonNull Task<Uri> task) {
                        if (task.isSuccessful()) {
                            Uri downloadUri = task.getResult();
                            if(downloadUri!=null)
                                SellingDetails.put("imageUrl",downloadUri.toString());
                            reference.add(SellingDetails).addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
                                @Override
                                public void onSuccess(DocumentReference documentReference) {
                                    Toast.makeText(GetLocationActivity.this, "Service Uploaded in explore db ", Toast.LENGTH_SHORT).show();
                                    pgAd.setVisibility(View.INVISIBLE);
                                    Intent intent = new Intent(GetLocationActivity.this, MainActivity.class);
                                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                                    startActivity(intent);
                                    Toast.makeText(GetLocationActivity.this, "Ad posted Successfully", Toast.LENGTH_LONG).show();
                                }
                            }).addOnFailureListener(new OnFailureListener() {
                                @Override
                                public void onFailure(@NonNull Exception e) {
                                    Toast.makeText(GetLocationActivity.this, "Failed adding data into explore db", Toast.LENGTH_SHORT).show();
                                    pgAd.setVisibility(View.INVISIBLE);
                                }
                            });
                            myAdDocRef.add(SellingDetails).addOnSuccessListener(new OnSuccessListener<DocumentReference>() {
                                @Override
                                public void onSuccess(DocumentReference documentReference) {
                                    Toast.makeText(GetLocationActivity.this, "Data Also added to myAds db", Toast.LENGTH_SHORT).show();
                                }
                            })
                                    .addOnFailureListener(new OnFailureListener() {
                                        @Override
                                        public void onFailure(@NonNull Exception e) {
                                            Toast.makeText(GetLocationActivity.this, "Data not added into my ads", Toast.LENGTH_SHORT).show();

                                        }
                                    });


                        } else {
                            // Handle failures
                            Toast.makeText(GetLocationActivity.this, "Failed adding data", Toast.LENGTH_SHORT).show();
                        }
                    }
                });



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