Допустим, у меня есть два типа пользователей и учетных записей объектов. Пользователи могут иметь много учетных записей и делиться ими с другими пользователями. Таким образом AccountA может быть доступен для User1 и User2. Хотя AccountB доступен только для User1. Таким образом, User1 имеет две учетные записи, а User2 имеет одну учетную запись.Многие-ко-многим, используя Firebase
Что такое способ «firebase», чтобы структурировать это?
Первоначально я думал, что пользователи могут хранить массив учетных записей, к которым они принадлежат.
users: {
1: {
name: 'Ted',
accounts: [1, 2]
}
2: {
name: 'Frank',
accounts: [1]
}
}
accounts: {
1: {
name: "Checking"
},
2: {
name: "Savings"
}
}
или учетная запись будет иметь множество пользователей.
users: {
1: {
name: 'Ted'
}
2: {
name: 'Frank'
}
}
accounts: {
1: {
name: "Checking",
users: [1, 2]
},
2: {
name: "Savings"
users: [1]
}
}
Я задаюсь вопрос, каким образом одалживает для меня легко найти счета для пользователя, так что, когда Тед входит в Я могу перечислить счета он принадлежит, не рушить всю базу данных. Для безопасности я все равно не хочу, чтобы все данные на его машине.
Вопрос № 1 Будут ли соблюдаться правила безопасности? Под этим я подразумеваю, что планирую установить мое правило безопасности, чтобы пользователи могли использовать только те учетные записи, к которым они принадлежат. Я надеюсь, что если я запрошу «/ accounts», я вернусь только к тем учетным записям, к которым пользователь может получить доступ ... нет?
Вопрос № 2 Есть ли механизм для запроса списка элементов. Как «/ accounts/[1,2]», чтобы вернуть аккаунты «/ accounts/1» и «/ accounts/2»?
Благодарим за любую информацию, которую вы можете предоставить.
Не могли бы вы указать, как бы вы сделали запрос. Если и только у вас есть ссылка на firebase для конкретного пользователя. Как вы получите информацию об учетной записи – feresr
@feresr, вам понадобится несколько запросов - первое, чтобы получить список учетных записей (/ users/1/accounts), а затем по одному для каждой интересующей вас учетной записи (в/accounts/п). Вот почему иногда стоит хранить некоторую итоговую информацию в разделе/users/x/accounts/y, например, псевдоним учетной записи. –
Хорошо. Теперь я имею в виду. Благодаря! – feresr