Я большой поклонник Firebase, и именно поэтому я решил использовать его в своем текущем приложении, но я дошел до того, что уже не знаю, сможет ли он удовлетворить мои потребности.
Функциональность приложения такая же, как и у приложения «Tinder», вы можете ставить лайки/не лайки людям в зависимости от их пола, местоположения и возраста.
Я заметил, что нет причин иметь более одного запроса за раз, поэтому я сохраняю каждого человека по пути в зависимости от его пола, а «ключ» — это «кнопка нажатия», которую генерирует firebase. Я использую "кнопку нажатия", т.к. она проиндексирована, поэтому пользователь не будет дважды свайпать одного и того же пользователя. (Пролистывание начнется с первого пользователя, присоединившегося к системе)
let lookForGender = "female"
//swipingIndex is the last user index I've swiped.
let baseRef = firebaseApp.database().ref("lookForGender")
.startAt(null, currentUser.swipingIndex);
baseRef.once('value', function (snapshot) {
UsersFeedService.updateState(snapshot);
})
//DB looks like:
"female"
someIndexKey
userObject
someIndexKey
userObject
"male"
someIndexKey
userObject
someIndexKey
userObject
Это хорошо работает, но сейчас я ищу способ получить только людей рядом со мной, для этого я добавил «GeoFire», но он должен работать на своем «ключе». И я не могу сохранять пользователей по ключам местоположения, потому что тогда они не будут проиндексированы (поэтому пользователь будет проводить только один раз по каждому пользователю).
Geo location хотел бы, чтобы БД выглядела примерно так:
“location”
userObject
“location”
userObject
“location”
userObject
“location”
userObject
Получение снимка всех пользователей и повторение между ними не вариант, поскольку их может быть много.
Это то, чего можно достичь с помощью firebase? Я не правильно структурирую данные? И если да, то как мне быть?