簡體   English   中英

我想計算用戶半徑並在Android Firebase中檢索用戶ID

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM