В настоящее время я планирую свою базу данных для моего Android-приложения, основанного на местоположении (видение приложения для iOS появится в будущем).
Мне интересно, соответствует ли следующая структура моим потребностям. Краткое изложение того, что включает в себя мое приложение: поиск пользователя в радиусе 2 км (геозона) и отображение его профиля (аналогично сопоставлению с кем-то из Tinder).
Итак, я предполагаю, что каждый пользователь загружает свое LatLon
местоположение в мою базу данных через API Google Maps - и Android запрашивает базу данных, чтобы найти пользователя в геозоне.
PS: Как лучше всего запрашивать пользователей в геозоне?
Моя предлагаемая база данных - Google Firestore со следующей настройкой документа:
users: {
2394824972439 (facebook_id): {
gender: "male"
currentLat: 37.234234,
currentLon: 157.192835,
profileImg1: googlecloudstorage.com/url/to/img1.png,
profileImg2: googlecloudstorage.com/url/to/img2.png,
bio: "This is my bio",
alreadyMatchedWith: [42304823423, 23423423432, 023948230]
}
7388824972439: {
gender: "female"
currentLat: 34.234234,
currentLon: 157.132835,
profileImg1: googlecloudstorage.com/url/to/img1.png,
profileImg2: googlecloudstorage.com/url/to/img2.png,
bio: "Another bio",
alreadyMatchedWith: [82304823423, 33423423432, 923948230]
}
}
Таким образом, запрос также будет гарантировать, что идентификатор Facebook другого пользователя (я использую Facebook для входа в систему) еще не сопоставлен. Если он не был сопоставлен, то база данных вернет документ этого пользователя и отобразит информацию о его профиле, а также изображения профиля из облака Google. место хранения.
Есть ли какие-либо красные флажки в этой настройке, о которых я должен беспокоиться - или какие-нибудь лучшие альтернативы?