Obecnie mam prostą aplikację todo, dzięki której użytkownicy mogą tworzyć listy, a następnie odhaczyć elementy tak, jak zrobiono. Dane mają następującą strukturę: "/ acc_" + USER_ID + "/ done" i "/ acc_" + USER_ID + "/ todo". Gdy elementy są "gotowe", są przenoszone do ukończonej listy.Jak uporządkować dane Firebase i zasady udostępniania danych między użytkownikami?
Chciałbym, aby użytkownik mógł udostępnić listę innym uwierzytelnionym użytkownikom.
Zasady obecnie wyglądają jak następujące, które wydają się działać.
{
"rules": {
"$userPath": {
".read": "auth != null",
".write": "auth != null",
".validate": "$userPath === 'acc_' + auth.id"
}
}
}
Co myślę, że musisz zrobić, to mieć każdy użytkownik posiadający tablicę zatwierdzonych adresów e-mail, który jakoś zaczepić do zasad bezpieczeństwa.
Alternatywnie mógłbym utworzyć listę w katalogu głównym i mieć dostęp do niej tylko przez twórcę i współdzielonych użytkowników.
Jakieś wskazówki?
nie miałem dużo szczęścia z powyższymi zasadami. Wydawało się, że to działa, ale "acc_" + auth.id '/ shared "jest tablicą, w której pierwszy wpis to ten, do którego chcę mieć dostęp. Chociaż z perspektywy czasu nie wydaje się to dobrym rozwiązaniem. Myślę, że moje problemy z architekturą aplikacji są głębokie. { "zasady": { "$ userPath": { ".write": "$ userPath ==" acc_ '+ auth.id || root.child ($ userPath) .child ("udostępnione"). child ('0') val() == auth.email ", " .read ":" $ userPath == "acc_ '+ auth.id || root.child ($ userPath) .child (' shared ') .child ("0"). val() == auth.email " } } } – defmech
więc czy znalazłeś jakieś dobre rozwiązanie? – jujule