Решением было бы либо добавить документ через консоль Firestore, поскольку здесь Документы создаются как пустые, либо, если в коде, добавить поле и, при необходимости, удалить его снова, документы будут появляться в запросах.

я добавляю документ со своим собственным идентификатором документа (не генерируется автоматически), узел идентификатора документа выделяется курсивом, как показано на снимке экрана с консоли Firestore. В чем причина этого?

Мой код для добавления данных

const billingRef = db
      .collection('billing/test/2017/months/11')
      .doc();

  billingRef
      .set({ name: 'ABC' })
      .then(_ => {
        console.log('saved');
      })
      .catch(err => {
        console.log(err);
      });

Выше код успешно добавляет узел, но добавляет курсивом «тест» и «месяцы».

скриншот 1

скриншот 2скриншот 3

Мой запрос дает нулевой результат для таких записей в firestore, следуя коду. Как я могу запросить все узлы под биллингом?

db.collection("billing").get().then(function(querySnapshot) {
    console.log(querySnapshot.size) // this is always 0
    querySnapshot.forEach(function(doc) {
        console.log(doc.id, " => ", doc.data());
    });
});

 Frank van Puffelen09 дек. 2017 г., 19:53
На вопрос 2: есть ли у вас разрешение на чтение из/billing? Самый простой способ обнаружить это добавить.catch((function(error) { console.error(error); }).
 Amy14 дек. 2017 г., 07:26
Еслиtest вbilling/test/2017/months/11 ссылка не существует в Firestore, попробуйте использоватьadd() метод, чтобы добавить документ в первую очередь, прежде чем ссылаться на него.
 Frank van Puffelen09 дек. 2017 г., 19:51
Я не знаю фактическую причину, но дело не в том, что ID генерируется автоматически или не настолько, насколько я могу судить. Я только что добавил документ с самопечатанным идентификатором, и он показал не курсивом, как и все другие (автоматически сгенерированные) идентификаторы в списке.
 Kumar09 дек. 2017 г., 20:24
Спасибо за внимание к этому Фрэнку, я думаю, что вопросы связаны, потому что это происходит только для идентификаторов документов, выделенных курсивом. Я обновил свой вопрос с помощью кода, чтобы показать, как я добавляю записи в пожарный магазин, превращая идентификаторы документов в курсив. Я последовательно воспроизводил это поведение.
 Frank van Puffelen09 дек. 2017 г., 19:52
Обратите внимание, что вы смешиваете два отдельных вопроса: 1. Почему некоторые идентификаторы документов отображаются в консоли курсивом? 2. Почему мой код не возвращает никаких документов? Я рекомендую опубликовать каждый из них как отдельный вопрос, так как ответы могут иметь мало общего друг с другом.

Ответы на вопрос(1)

что для документов вкурсивный есть небольшой текст, говорящий«Этот документ не существует, он не будет отображаться в запросах или снимках», забез наклонности это говорит«Этот документ не имеет данных»Таким образом, интуиция заключается в том, что когда документ создается в коде без каких-либо полей, он становится «нулевым» (подколлекция не считается). Если поле добавляется и удаляется, то документ просто пуст и не равен нулю.

Так как ваш запрос для документов, находящихся под фактурированием, выделен курсивом («ноль» или не существует), как указано в тексте выше, они не будут отображаться в запросах.

Решением было бы либо добавить документ через консоль Firestore, поскольку здесь Документы создаются как пустые, либо, если в коде, добавить поле и, при необходимости, удалить его снова, документы будут появляться в запросах.

Ваш ответ на вопрос