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

Я хотел добавить новое имя коллекции в firestore без класса POJO. Когда я пробовал это с классом pojo, я получаю в нем дополнительное имя поля. Я не хочу, чтобы это было добавлено. я пытался использовать @IgnoreExtraProperties, но не мог избежать добавления полей. Есть ли другой способ сделать это плохо для Firestore и android. Спасибо заранее. Мой код:

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());
            CartItem cartItem = new CartItem();

            NewCategory.document(itemId).set(cartItem).addOnSuccessListener(new OnSuccessListener<Void>() {
                @Override
                public void onSuccess(Void aVoid) {
                    Toast.makeText(CategoryUpload.this, "succced with adding ID", Toast.LENGTH_SHORT).show();
                }
            });

Мой класс PoJo:

@IgnoreExtraProperties
public class CartItem {

    private String name;

    public CartItem() {}

    public CartItem(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

, где добавляется поле имени

1 Ответ

1 голос
/ 07 апреля 2020

Из вашего вопроса не очень понятно, чего вы пытаетесь достичь. Похоже, вы пытаетесь создать пустую коллекцию. Однако, в действительности это невозможно в Firestore. Нет операции по созданию пустой коллекции. Коллекции автоматически возникают при записи в них документов, и они автоматически удаляются при удалении последнего документа.

Запрос к несуществующей коллекции просто выдаст 0 документов - будет Нет ошибки. Таким образом, на самом деле нет никакой разницы между пустой коллекцией и коллекцией, которая вообще не существует. Ваш код должен просто предполагать, что он может читать и записывать коллекцию независимо от того, видите ли вы ее в консоли.

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