Удаление данных, которые используют все пользователи, но только для одного пользователя в Cloud Firestore - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь структурировать свои данные таким образом, чтобы, когда кто-то добавлял новый продукт в базу данных, все пользователи получали новый продукт в своем списке, и поэтому новый продукт появлялся на их экране. Но если пользователь решит удалить этот продукт, он может удалить его, но только для себя. Существует ли сортировка / упорядочение / фильтрация Cloud Firestore, которую я должен использовать для выполнения sh этого?

Я подумал, что мог бы использовать что-то вроде следующего:

final theProduct = Provider.of<Products>(context);

products = await firestore.collection('products').getDocuments()

for (product in products.documents) {
await firestore.collection('products').add({
'nameOfProduct': theProduct.nameOfProduct
});
}

Но я получаю ошибка свойства документа.

Может быть, мне нужно go еще в одной коллекции, а затем попробовать что-нибудь? Но мне также нужно иметь возможность извлекать данные обратно, используя идентификатор пользователя вошедшего в систему пользователя.

Будем весьма благодарны за любые подсказки / полезные ссылки.


Так что я думаю то, что я хочу сделать, это перебрать все документы в коллекции, а затем document (). collection (''). add () что-то для каждой их коллекции. Надеюсь, это проливает свет на мою проблему.

Ответы [ 2 ]

0 голосов
/ 18 февраля 2020

Спасибо тем, кто прокомментировал. Я нашел способ реализовать это, используя уникальное значение, которое содержит каждый продукт, и добавить его в список для каждого пользователя в Firestore. Затем получите этот список из Firestore и отфильтруйте соответствующие продукты. Удаление не требуется.

0 голосов
/ 17 февраля 2020

Вопрос: пользователь решает удалить этот продукт, он может удалить его, но только для себя

Ответ: Вы можете создать список в разделе профиля пользователя, где у вас могут быть все идентификаторы документов продукта, которые вы можете использовать. этот идентификатор документа для получения конкретных сведений о продукте, и когда пользователь нажимает кнопку удаления, вы можете удалить этот конкретный идентификатор документа из своей коллекции.

Я не уверен, что ru делает с примером кода там.

Если Вы хотите добавить данные в базу данных, а затем использовать:

await Firestore().collection('Products').add({
  'nameOfProduct': theProduct.nameOfProduct,
});

. Это сгенерирует случайный идентификатор документа для вашего продукта.

Чтобы получить данные из определенного идентификатора, используйте:

DocumentSnapshot documentSnapshot = await Firestore().collection('Products').document('document').get();

тогда вы можете использовать этот снимок документа, чтобы получить данные для определенного ключа, например

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