Muitos-para-muitos usando o Firebase
Vamos dizer que eu tenho dois tipos de objetos usuários e contas. Os usuários podem ter muitas contas e compartilhá-las com outros usuários. Portanto, AccountA pode estar disponível para User1 e User2. Enquanto AccountB está disponível somente para User1. Portanto, o User1 tem duas contas e o User2 tem uma conta.
Qual é a maneira "firebase" de estruturar isso?
Eu estava inicialmente pensando que os usuários poderiam armazenar uma série de contas a que pertencem.
users: {
1: {
name: 'Ted',
accounts: [1, 2]
}
2: {
name: 'Frank',
accounts: [1]
}
}
accounts: {
1: {
name: "Checking"
},
2: {
name: "Savings"
}
}
Ou a conta teria uma variedade de usuários.
users: {
1: {
name: 'Ted'
}
2: {
name: 'Frank'
}
}
accounts: {
1: {
name: "Checking",
users: [1, 2]
},
2: {
name: "Savings"
users: [1]
}
}
Eu estou querendo saber o caminho que me permite encontrar facilmente as contas de um usuário para que, quando Ted faz o login, eu possa listar as contas que ele pertence sem ter que puxar para baixo o banco de dados inteiro. Por segurança, não quero todos esses dados em sua máquina.
Pergunta # 1 As regras de segurança cuidariam disso? Com isso quero dizer que estou planejando definir minha regra de segurança de modo que os usuários possam apenas as contas a que pertencem. Espero que, se eu consultar "/ accounts", eu receba apenas as contas que o usuário pode acessar ... não?
Pergunta # 2 Existe um mecanismo para consultar uma lista de itens. Como "/ accounts / [1,2]" para que eu receba as contas "/ accounts / 1" e "/ accounts / 2"?
Obrigado por qualquer informação que você possa compartilhar.