Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用微调器从Firebase检索列表?_Android_Firebase_Firebase Realtime Database_Spinner - Fatal编程技术网

Android 如何使用微调器从Firebase检索列表?

Android 如何使用微调器从Firebase检索列表?,android,firebase,firebase-realtime-database,spinner,Android,Firebase,Firebase Realtime Database,Spinner,因此,我试图根据扇区微调器检索所有项目的列表,因为有些项目属于不同的扇区,我想显示属于特定扇区的案例 我有两个类,一个存储状态和日期,另一个存储位置 位置类 public class Location { public String sector; public String area; public double longitude; public double latitude; public String getSector() {

因此,我试图根据扇区微调器检索所有项目的列表,因为有些项目属于不同的扇区,我想显示属于特定扇区的案例

我有两个类,一个存储状态和日期,另一个存储位置 位置类

public class Location {

    public String sector;
    public String area;

    public double longitude;
    public double latitude;

    public String getSector() {
        return sector;
    }

    public String getArea() {
        return area;
    }

    public double getLongitude() {
        return longitude;
    }

    public double getLatitude() {
        return latitude;
    }

    public Location()
    {

    }

    public Location(String sector , String area, double longitude, double latitude)
    {
        this. sector = sector;
        this. area = area;
        this.longitude = longitude;
        this.latitude = latitude;
    }

    @Override
    public String toString() {
        return "\n Sector='" + sector + '\'' +
                ",Area Name='" + area + '\'' +
                ",Longitude='" + longitude + '\'' +
                ",Latitude=" + latitude + "\n";

    }
案例类

public class Case {

    public String date;
    public String caseStatus;

    public String getDate() {
        return date;
    }

    public String getCaseStatus() {
        return caseStatus;
    }

    public Case()
    {

    }

    public Case(String date,String caseStatus)
    {
        this.date = date;
        this.caseStatus = caseStatus;
    }

    @Override
    public String toString() {
        return "\nCase Date='" + date + '\'' +
                ",Case Status='" + caseStatus + "\n";

    }
}

将位置添加到案例类。此外,还应该将变量设置为私有

public class Case {

    private Date date;
    private String status;
    private Location location;

    public Date getDate() {
        return date;
    }

    public String getStatus() {
        return status;
    }

    public Location getLocation() {
        return location;
    }

    public Case() {
    }

    public Case(Date date, String status, Location location) {
        this.date = date;
        this.status = status;
        this.location = location;
    }

    @Override
    public String toString() {
        return "\nCase Date='" + date + '\'' +
                ",Case Status='" + status + "\n";

    }
}
打开Firestore并启动一个项目。 在工具>Firebase>Firestore中将其连接到Android Studio。 使用字符串表示状态,时间戳表示日期,地图表示位置

将此代码添加到项目中

    ArrayList<Case> cases = new ArrayList<>();
    
    FirebaseFirestore firestore = FirebaseFirestore.getInstance();
    firestore.collection("cases")
    .whereEqualTo("location.sector", "somesector")
    .get()
    .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                @Override
                public void onComplete(@NonNull Task<QuerySnapshot> task) {
                    if (task.isSuccessful()) {
                        for (QueryDocumentSnapshot document : task.getResult()) {
                            Case case = document.toObject(Case.class);
                            cases.add(case);
// now you have list of Case objects where sector equals "somesector"
                        }
                    }
                }
            });

但是,如果我试图从FielBasic访问数据,我不应该使用DasaPopScript吗?我不想把列表存储在一个旋转器中,只想从扇区中选择扇区来检索列表,如果您想查询,请考虑使用FixStury。检查我的最新答案如果你能提供我在firestore中插入数据的方法,因为我对如何在firestore中添加对象有点迷茫,所以本官方教程应该可以帮助您,这段代码中到底有什么地方不符合您的预期?我想要一个解决方案,我可以使用微调器选择一个扇区,并显示一个包含匹配扇区的项的列表。看起来您没有尝试查询数据库或数据库填充数据对象。我建议从文档开始学习如何获取数据。
Case case = new Case(new Date(), "positive", new Location("somesector", "somearea", 150d, 555d));

FirebaseFirestore firestore = FirebaseFirestore.getInstance();
firestore.collection("cases").add(case);