【发布时间】:2017-06-30 14:40:17
【问题描述】:
我是 Firebase 的忠实粉丝,这也是我决定在我当前的应用中使用它的原因,但我已经到了不知道它是否能满足我的需求的地步。
应用功能与“Tinder”应用相同,您可以根据性别、位置和年龄在人身上滑动喜欢/不喜欢。
我注意到没有理由一次有多个查询,所以我根据每个人的性别将每个人保存在一条路径上,并且“key”是 firebase 生成的“push key”。 我正在使用“按键”,因为它已编入索引,因此用户不会向同一用户滑动两次。 (刷卡会从第一个加入系统的用户开始)
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”,但它必须使用自己的“密钥”。 而且我不能通过位置键保存用户,因为那样他们就不会被索引(所以用户只会在每个用户上滑动一次)。
地理位置希望数据库看起来像这样:
“location”
userObject
“location”
userObject
“location”
userObject
“location”
userObject
获取所有用户的快照并在他们之间进行迭代不是一种选择,因为他们可能有很多用户。
这是可以通过 firebase 实现的吗?我没有以正确的方式构建数据吗?如果是这样,我应该怎么做?
【问题讨论】:
-
投反对票的人,可以解释为什么不投反对票吗?谢谢。
-
我的猜测是投反对票的人认为这个问题很模糊;实际的问题是什么? Geofire 旨在满足您的需求——问题在于您实施的 Firebase 结构;没有理由将所有女性和所有男性分组在一起,你的 GeoFire 数据在哪里?您如何将位置与用户相关联?所有这些东西都需要成为您结构的一部分,您的查询自然会过滤掉该用户范围之外的用户。
-
@Jay 感谢您的回复,我已经编辑了我的问题,以便更准确地说明问题是什么,它与结构有关..
标签: javascript reactjs firebase react-native geofire