Firebaseデータをフィルタリングしようとしていますが、私のデータセットは複雑ですが、ここではサンプルです。私はデータをうまく取り出すことができますが、Firebaseのクエリを使ってそのデータをフィルタリングすることはできません。ここではサンプルデータセットである:ここでリファレンスがデータを取得してもAndroidでFirebaseクエリが機能しない
は私のクエリです:
private double locStart;
private double locEnd;
Firebase mRef;
Firebase mRef1;
mRef = new Firebase("https://test.firebaseio.com/");
mRef1 = mRef.child("test");
final Intent intent = getIntent();
final Inputs inputs = (Inputs) intent.getSerializableExtra("inputs");
locStart = inputs.getLocLat() - 0.008983;
locEnd = inputs.getLocLat() + 0.008983;
Query filterData = mRef1.orderByChild("locLat").startAt(locStart).endAt(locEnd);
filterData.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Match matchd = dataSnapshot.getValue(Match.class);
Offer.setText(matchd.getfbName());
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
それがnull値を取得するとき、私はそれにクエリを適用し、そのときにのみmRef1は、完全にデータを取得する基準となります、データは確かにクエリに一致しますが、私は値をコード化してもハードですが、どちらもうまくいかないようです。
Firebaseコンソールに何か設定が必要ですか?私はインデックスをセットアップし、それはFirebaseがフィールドとインデックスを認識していることを意味する、フィールド上に設定するように私に示唆していた私のログの警告を解決しました。
フランクに感謝します。あなたはまったく正しいのですが、これはFirebaseにデータを入力した方法でも、レコードが1つしかないことを前提にデータを取得していた方法です。forループを使ってdataSnapshotをループしていました。良い。助けてくれてありがとう。 また、私があなたに尋ねるかもしれない場合は、示唆した形式でデータを保存するためのコードやGitリポジトリがありますか? –
私はGeofireへのリンクを提供しました。 –
私はそれを実際に読んだことがありましたが、データの残りの部分をどのようにプッシュできるのかよく分かりませんでした。データの入力と検索の両方の方法を変更する必要があることはわかっていますが、わかっているGeofireの場所とともに残りのデータを入力する方法がありますか? –