如何在Android中使用geofire实时数据库的另一个项目中使用Geoquery?

问题描述 投票:0回答:1

我有2个firebase项目,一个用于用户应用程序,第二个用于驱动程序应用程序。我在firebase实时数据库中存储了驱动程序app的最新位置(lat-long)。现在我想从我的用户应用程序在驱动程序的项目数据库上执行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+"");
        }
    });
android firebase firebase-realtime-database maps geofire
1个回答
0
投票

如果您想稍后通过该名称查找,则需要为您的应用实例指定名称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");

另请参阅using multiple projects in your application上的Firebase文档。

© www.soinside.com 2019 - 2024. All rights reserved.