Одним из решений было бы иметь другую коллекцию в базе данных Firestore, в которой вы создаете документ пользователем, в котором вы сохраняете (и обновляете) объект , содержащий все публикации, которые понравились этому пользователю.
Как
- likers (Collection)
- UserUID (doc)
- postIds {
post1_UID: true,
post2_UID: true
}
Идея состоит в том, чтобы использовать технику, описанную в документе, здесь: https://firebase.google.com/docs/firestore/solutions/arrays#solution_a_map_of_values
Я не знаю, какой язык вы используете в интерфейсе, но в JavaScript вы бы сделали:
var postToTestId = ....; <- You set this value as you need (e.g. as a function parameter)
firebase.auth().signInWithEmailAndPassword("...", ".....")
.then(function (info) {
var postId = 'azer';
return db.collection('likers')
.where('postIds.'+ postToTestId, '==', true)
.get();
})
.then(function(querySnapshot) {
if (querySnapshot.size > 0) {
console.log("USER LIKES THIS POST!!!");
}
})
.catch(function (error) {
console.log(error);
});
Я не думаю, что есть какое-либо решение без хранения где-либо всех сообщений, которые понравились каждому пользователю ...