Как получить отфильтрованные документы firebase - PullRequest
0 голосов
/ 05 мая 2018

У меня есть коллекция lots, в которой много документов, сгенерированных firebase, в этих документах есть objects с этой формой

//lot Document
   {
    attr1: {
        subattr1 : "some value",
        ...
    },
    attr2: {
        subattr1 : "some value",
        ...
    },
    user: {
        id : "some uid value xAsDFadfaWRDAFd",
        ...
    }

так что в моей базе у меня есть

//my collection
         xAsDFadfaWRDAFd-loot1
         xAsDFadfaWRDAFd-loot2
         xAsDFadfaWRDAFd-loot3

Сейчас я просто хочу отфильтровать коллекцию по user id property.

Я пытался

firebase.collection('lots').where('user.id','==',uid).get().then(do Something if i find them);

но он не находит ничего, если я возьму .where('user.id','==',uid), он извлекает все документы из коллекции, кроме того, в будущем я мог бы захотеть отфильтровать по другому свойству внутри документов, как я могу это сделать?

1 Ответ

0 голосов
/ 05 мая 2018

Код, который вы не указали в предложении then(), скорее всего неверен Я установил данные в консоли и успешно выполнил код:

Image of the Firebase Console with code on the left, and data on the right

Вот код:

db.collection("lots").where("user.id","==","ABCDE").get().then(function(querySnapshot) {
    querySnapshot.forEach(function(doc) {
      // doc.data() is never undefined for query doc snapshots
      console.log(doc.id, " => ", doc.data());
    });
  })
  .catch(function(error) {
    console.log("Error getting documents: ", error);
  });

Если код в предложении then() на самом деле был верным, рассмотрите возможность проверки того, что user и id написаны одинаково с заглавными буквами, и что uid содержит ожидаемые вами данные (один из методов - жесткий код) значение, которое вы копируете / вставляете из документа в консоли.

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