Как добавить новую Подколлекцию в документ Firestore Android - PullRequest
0 голосов
/ 06 апреля 2020

Я хотел добавить новую вложенную коллекцию в существующий документ. Должен ли я создать новый класс POJO, чтобы добавить Sub-Collection или любой другой способ сделать это. Я хотел добавить новый Sub-Collection к существующему идентификатору документа. Я новичок в android и Firestore. Заранее спасибо. это моя база данных

Я попробовал этот метод, но застрял не удалось

private void setNewCategory(String downloadUrl){
    FirebaseFirestore db = FirebaseFirestore.getInstance();
    DocumentReference newMainCatRef = db
            .collection("HomeFeed")
            .document("5HEkE0ac7sMa7Gjnvf3E")
            .collection("MainCategory")
            .document();
    itemId = newMainCatRef.getId();
    MainCategory category = new MainCategory();

    category.setCategory_id(itemId);
    category.setCategory_name(category_name.getText().toString());
    category.setCategory_url(downloadUrl);
    category.setPriority(priority.getValue());

    newMainCatRef.set(category).addOnSuccessListener(new OnSuccessListener<Void>() {
        @Override
        public void onSuccess(Void aVoid) {
            Log.d(TAG, "onSuccess: Success on Updating the new Field to cat");
            FirebaseFirestore NC = FirebaseFirestore.getInstance();
            CollectionReference NewCategory = NC
                    .collection("Categories")
                    .document("tUdFCajDcQT995jX6G4k")
                    .collection(category_name.getText().toString());
            NewCategory.add()

            category_name.setText("");
            priority.setValue(0);
            category_image.setImageResource(R.drawable.ic_android);
            category_progress.setVisibility(View.INVISIBLE);

        }
    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            Toast.makeText(mContext, "Failed to add New Catgory Try again!", Toast.LENGTH_SHORT).show();
        }
    });

}

1 Ответ

0 голосов
/ 06 апреля 2020

Нет необходимости делать что-то особенное. Как я вижу в вашем коде, вы уже используете правильную ссылку:

CollectionReference NewCategory = NC
                .collection("Categories")
                .document("tUdFCajDcQT995jX6G4k")
                .collection(category_name.getText().toString());

category_name.getText().toString(), являющееся именем вложенной коллекции, но проблема возникает в следующей строке кода:

NewCategory.add()

Где вы не передаете ничего в качестве аргумента. Вы должны передать пользовательский объект или карту, чтобы иметь возможность что-то записать в базу данных.

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