如何使用 geofire 查询计算特定位置半径内的可用用户?

how can i count the available user in specific loaction radius with geofire query?

现在我正在使用 dataSnapshot.getChildrenCount,但它只计算子节点中可用的节点。

这是我的代码

 GeoFire geoFire = new GeoFire(ref.child("Userlocation"));
    GeoQuery geoQuery = geoFire.queryAtLocation(new GeoLocation(latitude, longitude), Raius);

    geoQuery.addGeoQueryDataEventListener(new GeoQueryDataEventListener() {
        @Override
        public void onDataEntered(DataSnapshot dataSnapshot, GeoLocation location) {


            int userCounter = (int) dataSnapshot.getChildrenCount();
            ads5_userCounter.setText(userCounter + "");


        }

        @Override
        public void onDataExited(DataSnapshot dataSnapshot) {

        }

        @Override
        public void onDataMoved(DataSnapshot dataSnapshot, GeoLocation location) {

        }

        @Override
        public void onDataChanged(DataSnapshot dataSnapshot, GeoLocation location) {

        }

        @Override
        public void onGeoQueryReady() {

        }

        @Override
        public void onGeoQueryError(DatabaseError error) {

        }
    });

此方法未计算在此位置半径内可用的所有用户。请帮忙

为范围内的每个节点调用 onDataEntered 方法。一旦为所有最初在范围内的节点调用了 onDataEntered,就会调用 onGeoQueryReady 方法。这意味着您可以在 onDataEntered 中增加一个计数器,然后在 onGeoQueryReady.

中显示它
long count = 0;
geoQuery.addGeoQueryDataEventListener(new GeoQueryDataEventListener() {
  @Override
  public void onDataEntered(DataSnapshot dataSnapshot, GeoLocation location) {
    count++;
  }
  @Override
  public void onDataExited(DataSnapshot dataSnapshot) { }
  @Override
  public void onDataMoved(DataSnapshot dataSnapshot, GeoLocation location) { }
  @Override
  public void onDataChanged(DataSnapshot dataSnapshot, GeoLocation location) { }

  @Override
  public void onGeoQueryReady() {
    ads5_userCounter.setText(""+count);
  }

  @Override
  public void onGeoQueryError(DatabaseError error) {
    throw databaseError.toException(); // don't ignore errors
  }
});