GeoFireStoreアンドロイドを使用して範囲内Firestoreからユーザーを取得

ユーリMatatov:

私のAndroidアプリケーションでは、私はからのユーザーとリストを取得する必要がありFirestore使用範囲内でGeoFireStoreを

Firestoreでのデータベースの構造: ここでは、画像の説明を入力します。

私はこれから得たすべての情報はリンク

依存:

implementation 'com.github.imperiumlabs:GeoFirestore-Android:v1.1.1'

リポジトリ:

maven { url 'https://jitpack.io' }

コード:

CollectionReference geoFirestoreRef = 
FirebaseFirestore.getInstance().collection("Users");
GeoFirestore geoFirestore = new GeoFirestore(geoFirestoreRef);

GeoQuery geoQuery = geoFirestore.queryAtLocation(new GeoPoint(32.848971, 35.0920935), 30);

geoQuery.addGeoQueryDataEventListener(new GeoQueryDataEventListener() {
    @Override
    public void onDocumentEntered(DocumentSnapshot documentSnapshot, GeoPoint location) {
    }

    @Override
    public void onDocumentExited(DocumentSnapshot documentSnapshot) {  
    }

    @Override
    public void onDocumentMoved(DocumentSnapshot documentSnapshot, GeoPoint location) { 
    }

    @Override
    public void onDocumentChanged(DocumentSnapshot documentSnapshot, GeoPoint location) {    
    }

    @Override
    public void onGeoQueryReady() {     
    }

    @Override
    public void onGeoQueryError(Exception exception) {
    }
});

私はしませんでしたので、私は、関数を呼び出すことはできません。

@Override
public void onDocumentEntered(DocumentSnapshot documentSnapshot, GeoPoint location) {
}

これだけの機能が呼び出されます。

@Override
public void onGeoQueryReady() {     
}
ロレンツォCalisti:

私がコメントを追加することはできませんので、私は答えとしてこれを追加しています。

だから、何あなたがやろうとしているのは、すべてが取得されDocumentSnapshots、このコードが正しいことのために一定の半径内、あなたが新しい作成GeoFirestore使用してインスタンスをCollectionReference、次にあなたが欲しい場所を問い合わせます。

問題があるということ、あなたのデータベースに現在存在しない無位置データ GeoFirestoreで使用できるが、あなたがすることによってこれを解決することができますが、データベースに文書を追加するときに「位置データ」を追加します

implementation 'com.github.imperiumlabs:GeoFirestore-Android:v1.2.0'
/*
 * You have to do this only one time for document
 * so the best is after the document upload to Firestore.
 */

//The id of the document you want to add the location
String documentId = documentReference.id;
GeoPoint point = new GeoPoint(/*lat,long of your point*/);
geoFirestore.setLocation(documentId, point);

あなたは、公式ドキュメントを見つけることができるここに

最後のヒントとして、私は地理ハッシュアルゴリズムが変更され、あなたがkotlin機能を利用することができますので、あなたが正しいバージョン(1.2.0)にライブラリを更新示唆しています。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=210506&siteId=1