Предположим, у меня есть два типа пользователей и учетных записей объектов. Пользователи могут иметь много учетных записей и делиться ими с другими пользователями. Таким образом AccountA может быть доступен для User1 и User2. Хотя AccountB доступен только для User1. Таким образом, User1 имеет две учетные записи, а User2 имеет одну учетную запись.
Каков способ "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]
}
}
Мне интересно, каким образом я могу легко найти учетные записи для пользователя, чтобы при входе в систему Ted я могу перечислить учетные записи, к которым он принадлежит, без необходимости сбрасывать всю базу данных. Для безопасности я все равно не хочу, чтобы все данные на его машине.
Вопрос №1 Позаботились бы об этом правила безопасности? Под этим я подразумеваю, что планирую установить мое правило безопасности, чтобы пользователи могли использовать только те учетные записи, к которым они принадлежат. Я надеюсь, что если я запрошу "/accounts", я вернусь только к тем учетным записям, к которым пользователь может получить доступ... нет?
Вопрос №2 Есть ли механизм для запроса списка элементов. Как "/accounts/[1,2]", чтобы я возвращал учетные записи "/accounts/1" и "/accounts/2"?
Спасибо за любую информацию, которую вы можете поделиться.