Как использовать Geoquery в другом проекте с базой данных geofire в реальном времени на Android?

#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 об использовании нескольких проектов в вашем приложении.