![](/img/trans.png)
[英]I want to retrieve a current user's ID from firebase and write it in another node, but it just keeps denying
[英]I want to calculate user radius and retrieve the user id in android Firebase
我希望當用戶上傳帖子時將通知發送到半徑10 km的用戶。 為此,我要通過從Firebase數據庫中檢索用戶的緯度和經度,並將它們連同上傳位置的帖子的緯度和經度一一發送到distanceBetween
函數,來計算用戶半徑。 但是問題是哪個用戶進入了半徑范圍,而且我無法檢索用戶ID和reg令牌來發送通知。
這是我的代碼
dataref.addValueEventListener(new com.google.firebase.database.ValueEventListener() {
@Override
public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {
for (com.google.firebase.database.DataSnapshot data : dataSnapshot.getChildren())
{
datasnap = data;
}
Location.distanceBetween(Post_latitude, Post_longitude,Double.parseDouble(datasnap.child("latitude").getValue(String.class)), Double.parseDouble(datasnap.child("longitude").getValue(String.class)), results);
final double km = (results[0] / 1000);
if (km <= 10000) {
if (!String.valueOf(datasnap.getKey().toString()).equals(userID)) {
//getting the user id here
Log.d("USerID", datasnap.getKey().toString() )
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
我找到了解決我問題的方法。 使用geofire以指定半徑保存和檢索用戶位置。
這是代碼:
//在[37.7832,-122.4056]周圍創建一個半徑為0.6公里的新查詢。GeoQuery geoQuery = geoFire.queryAtLocation(new GeoLocation(37.7832,-122.4056),0.6);
有關詳細信息,請檢查鏈接: https : //github.com/firebase/geofire-java
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.