В базе данных, как это:Как делиться данными между пользователями в Firebase?
{
"users": {
"simplelogin:213": {
"provider": "password",
"name": "bobtony",
"friends": {
"Andrew Lee": true,
"James Tamplin": true
}
},
"twitter:123": {
"provider": "twitter",
"name": "Andrew Lee",
"friends": {}
},
"facebook:456": {
"provider": "facebook",
"name": "James Tamplin",
"friends": {}
}
},
"messages": {
"simplelogin:213": {
"-JkpwAnieKjQVsdtPD4m" : {
"content" : "Hello World"
}
}
}
}
Учитывая, что bobtony добавить Эндрю Ли, как его друг, как Эндрю Ли может читать bobtony сообщения? Аналогичный вопрос задал here, но без хорошего решения. Я знаю, что у меня может быть правило, позволяющее читать сообщение, но пользователи «друга» просто не знают пути их чтения.
Update: После того, как потратить некоторое время на обдумывание, я получил:
{
"users": {
"user1": {
"name": "bobtony",
"partners": {
"user2": {
"accepted": true
}
},
"customers":{
"customer1": true,
"customer2": true
// hundreds of clients
},
"orders":{
"order1": true,
"order2": true
// hundreds of orders
}
}
},
"customers": {
"customer1": {
"name" : "james"
}
}
}
Таким образом, было бы хорошо иметь что-то вроде этого? Таким образом, я могу пройти через своих клиентов и своих партнеров.
Фактически, «сообщения» будут «потребителями», поэтому мне нужно иметь список клиентов, совместно используемый с другими пользователями. Итак, добавив пользователя как «друга» или «партнера», он будет работать с теми же клиентами. Я начинаю думать, что Firebase не относится к моей бизнес-модели. –
@ MárcioSouzaJúnior вы пришли к выводу об этом? В настоящее время я использую Couchbase Server и Couchbase Lite, который очень хорошо решает эту проблему; но его немного тяжело на сервере (требуется 8-16 ГБ экземпляра для бесперебойной работы с Sync Gateway), поэтому мне интересно, может ли Firebase удовлетворить мои потребности лучше или, по крайней мере, сократить расходы на сервер – Adamski
@Adamski, я пришел к выводу, что Firebase dont удовлетворить мои потребности. По-прежнему используется MySQL на стороне сервера и SQLite на клиенте. –