Как использовать карту в пользовательском объекте java для пожарного магазина - PullRequest
0 голосов
/ 27 марта 2020

У меня есть Java пользовательский объект, который я использую в Firestore для установки продукта.

Это выглядит частично так:

package product.firebaseobjects;

import java.util.List;
import java.util.Map;

public class Product {

private List<String> productcodes;
private Map<String, String> altdescriptions;
private String description;
private Long amount;
private boolean hasimage;
public Product(){
}

public FBProduct(List<String> productcodes, Map<String, String> altdescriptions, String description, Long amount, boolean hasimage) {
    this.productcodes = productcodes;
    this.altdescriptions = altdescriptions;
    this.description = description;
    this.amount = amount;
    this.hasimage = hasimage;
}
(getters & setters omitted)

Получение выполняется с помощью

DocumentReference docRef = db.collection(PRODUCTS).document(id);
ApiFuture<DocumentSnapshot> future = docRef.get();
DocumentSnapshot document = null;
Product product = null;
try {
    document = future.get();
} catch (InterruptedException | ExecutionException e) {
    e.printStackTrace();
}
if (document.exists()) {
    product = document.toObject(Product.class);
}
return product;

Когда я сохраняю этот объект, используя этот код

List<string> productcodes = new ArrayList<>();
productcodes.add("productcode1");
productcodes.add("productcode2");
Map<String, String> alt = new HashMap<>();
alt.put("French","French description");
alt.put("German","German description");
String description = "Description";
Long amount = 1L;
boolean hasimage = false;
Product product = new Product(productcodes, alt, description, amount, hasimage);

ApiFuture<DocumentReference> future = db.collection(PRODUCTS).add(product);

все поля сохраняются в Firestore, кроме поля 'altdescription'. Это поле не должно быть найдено. Во всех примерах в документах используется Map<String, Object>, который я также попробовал, но без разницы.

В результате поиска я нашел решения, которые используют метод update () с использованием точечной нотации, но тогда вы не используете customobject.

Мой вопрос: как использовать карту в пользовательском объекте Firestore Java. И если это невозможно, каков предпочтительный способ установки, обновления и получения Карт для настраиваемого объекта.

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