Geofire 会为每个用户提供新密钥吗?
Does Geofire give new keys to each user?
我想将 geofire 用于多个位置查询,但不知道如何为每个位置分配单独的键。 geofire 会自动为每个用户的位置分配不同的密钥吗?
这是我的 Geofire 代码:
if (gps.canGetLocation()) {
double latitude = gps.getLatitude();
double longitude = gps.getLongitude();
location.setText(latitude + "" + longitude);
//add points to database
myRef = database.getReference("Location");
GeoFire geoFire = new GeoFire(myRef);
geoFire.setLocation("Person", new GeoLocation(latitude,longitude));
} else {
gps.showSettingsAlert();
}
您问题的答案是否定的。Geofire 不会为您提供每个用户的密钥。您必须使用自己的逻辑创建一个密钥,然后将其添加到列表中(我将此列表称为 Locations
):
String key = //use your own logic to get this
if (gps.canGetLocation()) {
double latitude = gps.getLatitude();
double longitude = gps.getLongitude();
location.setText(latitude + "" + longitude);
//add points to the list on the database
myRef = database.getReference("Locations").child(key);
GeoFire geoFire = new GeoFire(myRef);
geoFire.setLocation("Person", new GeoLocation(latitude,longitude));
} else {
gps.showSettingsAlert();
}
如果您使用 Firebase 身份验证,您可以简单地从经过身份验证的用户那里获取 uid 并将其用作您的密钥。
我想将 geofire 用于多个位置查询,但不知道如何为每个位置分配单独的键。 geofire 会自动为每个用户的位置分配不同的密钥吗?
这是我的 Geofire 代码:
if (gps.canGetLocation()) {
double latitude = gps.getLatitude();
double longitude = gps.getLongitude();
location.setText(latitude + "" + longitude);
//add points to database
myRef = database.getReference("Location");
GeoFire geoFire = new GeoFire(myRef);
geoFire.setLocation("Person", new GeoLocation(latitude,longitude));
} else {
gps.showSettingsAlert();
}
您问题的答案是否定的。Geofire 不会为您提供每个用户的密钥。您必须使用自己的逻辑创建一个密钥,然后将其添加到列表中(我将此列表称为 Locations
):
String key = //use your own logic to get this
if (gps.canGetLocation()) {
double latitude = gps.getLatitude();
double longitude = gps.getLongitude();
location.setText(latitude + "" + longitude);
//add points to the list on the database
myRef = database.getReference("Locations").child(key);
GeoFire geoFire = new GeoFire(myRef);
geoFire.setLocation("Person", new GeoLocation(latitude,longitude));
} else {
gps.showSettingsAlert();
}
如果您使用 Firebase 身份验证,您可以简单地从经过身份验证的用户那里获取 uid 并将其用作您的密钥。