Как для авторизированных юзеров записывать, хранить и отображать уникальные данные?
Здравствуйте, делаю приложение по поиску фильмов на React + firebase. Сделал авторизованным юзерам возможность при клике на кнопку добавлять фильм в закладки но у всех пользователей фильмы в закладках одинаковые (у всех юзеров обьекты фильмов общие). Как сделать чтобы для разных юзеров была возможность получать с базы данных собственные уникальные обьекты фильмов а не все общие? Пользуюсь новым cloud firestore
вам нужно хранить отдельно фильмы и отдельным ключем ложить id фильмов которые пользователь добавил в закладки. Это будет выглядеть примерно так
UserBookmarks->UserID->ID фильмов
Films->ID всех фильмов
А можно пожалуйста здесь поподробнее? сейчас у меня в правилах прописано:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// match logged in user doc in users collection
match /users/{userId} {
allow create: if request.auth.uid != null;
allow read: if request.auth.uid == userId;
}
// match documents in the bookmarks collection
match /bookmarks/{bookmarkId} {
allow read, write: if request.auth.uid != null;
}
}
}
function addBookmarks(idBookmark){
var user = firebase.auth().currentUser; //берем текущего юзера
if (user != null) {
uid = user.uid;
const doc = db.collection('userBookmarks/').doc(uid);
const temp = doc.get().then(res => res.data());
if(temp){ //проверяем если есть уже закладки
const doc = db.collection('userBookmarks/'+uid)
doc.set(Object.assign({},temp,{[idBookmark]:idBookmark})); //добавляем новую закладку к существующим
}else{
const doc = db.collection('userBookmarks/'+uid)
doc.set({[idBookmark]:idBookmark}) // добавляем новую закладку если их вапще нет
}
}
}
FirebaseError: Invalid collection reference. Collection references must have an odd number of segments, but userBookmarks/LP5MVgne0LhEZv1TPHugIZ4kYbD3 has 2
на этой строке: const doc = db.collection('userBookmarks/' + uid);
function addBookmarks(idBookmark){
var user = firebase.auth().currentUser; //берем текущего юзера
if (user != null) {
uid = user.uid;
const doc = db.collection('userBookmarks/').doc(uid)
const temp = doc.get().then(res => res.data());
if(temp){ //проверяем если есть уже закладки
const doc = db.collection('userBookmarks').doc(uid)
doc.set(Object.assign({},temp,{[idBookmark]:idBookmark})); //добавляем новую закладку к существующим
}else{
const doc = db.collection('userBookmarks').doc(uid)
doc.set({[idBookmark]:idBookmark}) // добавляем новую закладку если их вапще нет
}
}
}