#android #firebase #firebase-realtime-database #maps #geofire
#Android #firebase #firebase-realtime-database #Карты #geofire
Вопрос:
У меня есть 2 проекта firebase, один для пользовательского приложения, а второй для приложения драйвера. Я сохраняю последнее местоположение (lat-long) приложения-драйвера в базе данных firebase в реальном времени. Теперь я хочу выполнить geoquery в базе данных проекта драйвера из моего пользовательского приложения. Мой вопрос в том, как выполнить geoquery в другом проекте. Я хочу получить список драйверов из пользовательского приложения с помощью geoquery (минуя текущую позицию пользователя, чтобы найти ближайший драйвер)
FirebaseOptions options = new FirebaseOptions.Builder().setApplicationId("1:my_App_ID").setApiKey("AIza_My_API_KEY").setDatabaseUrl("https://My_URL.firebaseio.com/").build();
FirebaseApp.initializeApp(this , options);
FirebaseApp app = FirebaseApp.getInstance("xyz");
FirebaseDatabase secondaryDatabase FirebaseDatabase.getInstance(app);
DatabaseReference data = secondaryDatabase.getInstance().getReference().child("Drivers Available");
GeoFire geoFire = new GeoFire(data);
GeoQuery geoQuery = geoFire.queryAtLocation(new GeoLocation(21.11626328, 79.051096406), 1);
geoQuery.addGeoQueryEventListener(new GeoQueryEventListener() {
@Override
public void onKeyEntered(String key, GeoLocation location) {
Log.d("test_geolocation",key);
}
@Override
public void onKeyExited(String key) {}
@Override
public void onKeyMoved(String key, GeoLocation location) {}
@Override
public void onGeoQueryReady() {
}
@Override
public void onGeoQueryError(DatabaseError error) {
Log.d("errorGeoQuery",error "");
}
});
Ответ №1:
Вам нужно присвоить экземпляру вашего приложения имя xyz
, если вы хотите посмотреть его по этому имени позже.
Итак, что-то вроде:
FirebaseOptions options = new FirebaseOptions.Builder().setApplicationId("1:my_App_ID").setApiKey("AIza_My_API_KEY").setDatabaseUrl("https://My_URL.firebaseio.com/").build();
FirebaseApp.initializeApp(this , options, "xyz");
FirebaseApp app = FirebaseApp.getInstance("xyz");
Также ознакомьтесь с документацией Firebase об использовании нескольких проектов в вашем приложении.