gpt4 book ai didi

Android geofire 获取一定半径内的用户列表

转载 作者:行者123 更新时间:2023-11-29 23:17:40 24 4
gpt4 key购买 nike

我正在尝试将所有用户添加到距离用户位置一定距离内的列表中。我已成功获取用户当前位置,并使用 geofire 将其存储在我的数据库中。我知道我必须使用 geofire 来查询结果,但我不确定如何将用户添加到我的列表中。我相信这是在 onKeyEntered 方法中完成的,但我不确定。

    private void addLocationToDB()
{
database = FirebaseDatabase.getInstance().getReference("Leaderboard").child(userID);

geoFire = new GeoFire(database);

geoFire.setLocation("Location", new GeoLocation(latitude, longitude), new GeoFire.CompletionListener()
{
@Override
public void onComplete(String key, DatabaseError error)
{
if(error != null)
{
Log.d(TAG, "Problem storing users location - onComplete: " + error.getMessage());
}

else
{
getListNearbyUsers();
}
}
});
}

private void getListNearbyUsers()
{
geoQuery = geoFire.queryAtLocation(new GeoLocation(latitude, longitude), 1);

geoQuery.addGeoQueryEventListener(new GeoQueryEventListener()
{
@Override
public void onKeyEntered(String key, GeoLocation location)
{
nearbyUsers.add(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)
{

}
});
}

最佳答案

任何正在寻找答案的人我都发现了我的错误。此方法应将用户 ID 作为参数而不是“位置”。然后我可以将所有“ key ”作为用户 ID 并过滤数据。希望这对遇到同样问题的人有所帮助。

geoFire.setLocation("Location", new GeoLocation(latitude, longitude), new GeoFire.CompletionListener()
{
@Override
public void onComplete(String key, DatabaseError error)
{
if(error != null)
{
Log.d(TAG, "Problem storing users location - onComplete: " + error.getMessage());
}

else
{
getListNearbyUsers();
}
}
});

关于Android geofire 获取一定半径内的用户列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55042969/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com