Добавить пустой документ в коллекцию

Я пытаюсь добавить новый документ и коллекцию в свою базу данных. Я знаю, что могу просто добавить документ, и если коллекция, в которой он должен быть, будет добавлена, если она не существует. Мой вопрос: как я могу добавить пустой документ в новую коллекцию в моей базе данных?

Я пробовал этот код с сайта разработчиков Android:

ApiFuture<WriteResult> future = db.collection("cities").document("LA");
// ...
// future.get() blocks on response
System.out.println("Update time : " + future.get().getUpdateTime());

Но это дает мне ошибку в части ApiFuture, которую я не могу решить. Итак, я попробовал это:

db.collection(mail).document("tarefa");

(почта - это строка) Но это не работает. Кто-нибудь знает, что мне делать?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
1 355
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

db.collection("cities").document("LA") создает только ссылку на документ. Он еще не записывает никаких данных.

Вероятно, это самый короткий способ написать пустой документ:

db.collection("cities").document("LA").set(new HashMap<String, Object>())

Если это не сработает, update обязательно сработает:

db.collection("cities").document("BJ")
    .set(new HashMap<String, Object>(), SetOptions.merge());

Большое спасибо, @FranfvanPuffelen. Мне действительно пришлось объединить два варианта, которые вы мне дали. В первом была ошибка (видимо, я не могу присвоить документу нулевое значение), но когда я сделал второй, он просто не работал. Поэтому я использовал первый, но с новым HashMap. Как вы можете видеть в моем ответе. Большое спасибо!

Person 31.05.2019 09:40

Рад слышать. Я обновил первый фрагмент в своем ответе. Я не уверен, почему второй не сработает. :-/

Frank van Puffelen 31.05.2019 16:17

Поэтому я адаптировал ответ Фрэнка ван Паффелена, и он решил мою проблему. Вот как я это сделал:

db.collection(mail).document("tarefa").set(new HashMap<String, Object>());

Другие вопросы по теме