Я впервые разрабатываю проект во Флаттере и пытаюсь найти наилучший способ организации базы данных Firestore.Я считаю, что у меня все так, как я хочу, но не могу понять, как правильно его запросить.
У меня есть пользователь с идентификатором в коллекции, который связывает профиль игрока с его профилем пользователя (в отдельностиколлекции).
Мне нужно:
- получить идентификатор пользователя Firebase currentUser
- найти соответствующий профиль игрока
- Получить идентификаторы событий, сохраненные в профиле игрока
- список событий на основе их идентификаторов
Я предполагаю, что в этом порядке.
DatabaseReference getCurrentUserRef() async {
return this.usersRef.child((await this.getCurrentUser()).uid);
}
var user = await getCurrentUserRef()
var _playerEvents = [];
db.collection('player').where('id', isEqualto: user).get().then((doc) => {
db.collection('player').doc(doc.data().id).collection('events').get().then((snapshot) => {
snapshot.forEach(doc) {
_playerEvents.push(doc.data().id);
}
});
});
Затем с этим массивом мне нужно получить все событияна основе этих идентификаторов (если они есть)
_playerEvents.forEach(event) {
db.collection('events').where('id', isEqualTo: event).get().then((doc) => {
//somehow popular a Map or JSON that I can show in a list view on the page for the events associated with that player
List_Item for display
});
}
Вот несколько экранов моей БД.Я учу Флаттер, который использует дротик.Любая помощь будет удивительной.
![User Collection](https://i.stack.imgur.com/LFHMt.png)
![Player Collection](https://i.stack.imgur.com/sBaim.png)
![Events Collection](https://i.stack.imgur.com/eshZ3.png)