使用 "Firebase" + "Geofire" 构建一个 "Tinder" 应用程序,这可能吗?
Building a "Tinder" app with "Firebase" + "Geofire", is it even possible?
我是 Firebase 的忠实粉丝,这就是我决定在我当前的应用程序中使用它的原因,但我已经到了我不再知道它是否能满足我的需求的地步。
应用程序功能与 "Tinder" 应用程序相同,您可以根据性别、位置和年龄在人物身上滑动 like/unlike。
我注意到没有理由一次有多个查询,所以我根据性别将每个人保存在一条路径中,"key" 是 "push 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 实现吗?我没有以正确的方式构建数据?如果是这样,我该怎么办?
Firebase 中的典型设计模式如何?
users
uid_0
gender: "male"
name: "George"
age: "35"
uid_1
gender: "female"
name: "Gracie"
age: "32"
_geofire
uid_0:
g: "asdaseeefef"
l:
0: 52.2101515118818
1: -0.3215188181881
uid_1:
g: "oposooksok"
l:
0: 50.1234567898788
1: -0.8789999595988
使用此结构,您可以查询所有男性、女性 and/or 用户半径范围内的所有人(根据问题)。
只需一点代码,您就可以查询用户半径内的所有女性,按年龄的人或任何叫 Gracie 的人。
我是 Firebase 的忠实粉丝,这就是我决定在我当前的应用程序中使用它的原因,但我已经到了我不再知道它是否能满足我的需求的地步。
应用程序功能与 "Tinder" 应用程序相同,您可以根据性别、位置和年龄在人物身上滑动 like/unlike。
我注意到没有理由一次有多个查询,所以我根据性别将每个人保存在一条路径中,"key" 是 "push 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 实现吗?我没有以正确的方式构建数据?如果是这样,我该怎么办?
Firebase 中的典型设计模式如何?
users
uid_0
gender: "male"
name: "George"
age: "35"
uid_1
gender: "female"
name: "Gracie"
age: "32"
_geofire
uid_0:
g: "asdaseeefef"
l:
0: 52.2101515118818
1: -0.3215188181881
uid_1:
g: "oposooksok"
l:
0: 50.1234567898788
1: -0.8789999595988
使用此结构,您可以查询所有男性、女性 and/or 用户半径范围内的所有人(根据问题)。
只需一点代码,您就可以查询用户半径内的所有女性,按年龄的人或任何叫 Gracie 的人。