Android微调器没有显示Firebase实时数据库数据?

问题描述 投票:0回答:2

一段时间以来我一直遇到麻烦。我想在android studio中创建一个微调器并使用firebase数据库。但我似乎无法让微调器在微调器中显示任何数据库的数据。我试图遵循一些类似的问题,但我遇到了同样的问题。由于我是Firebase的新手,因此我不确定如何实际创建索引以从中获取。

这是我目前的代码:

    FirebaseDatabase database = FirebaseDatabase.getInstance();
    DatabaseReference fDatabaseRoot = database.getReference("locations");


    fDatabaseRoot.child("buildings").addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            final List<String> buildings = new ArrayList<>();

            for (DataSnapshot buildingSnapshot: dataSnapshot.getChildren()) {
                String buildingName = buildingSnapshot.child("buildingName").getValue(String.class);
                buildings.add(buildingName);
            }

            Spinner buildingSpinner = findViewById(R.id.spinner);
            ArrayAdapter<String> buildingAdapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_spinner_item, buildings);
            buildingAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            buildingSpinner.setAdapter(buildingAdapter);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });`

以下是我的数据库设置方式:Firebase Spinner Database

java android firebase firebase-realtime-database
2个回答
1
投票

这是SnapshotListener的FirebaseFirestore实现。您可以通过DocumentChange类检查数据的变化类型(ADDEDMODIFIEDREMOVED)。你可以在这里看看这个例子:https://firebase.google.com/docs/firestore/query-data/listen#view_changes_between_snapshots

FirebaseFirestore db= FirebaseFirestore.getInstance();
db.collection("locations").document("buildings").addSnapshotListener(new EventListener<QuerySnapshot>() {
        @Override
        public void onEvent(@Nullable QuerySnapshot snapshots,
                            @Nullable FirebaseFirestoreException e){
             //your action here
        }
);

0
投票

好吧,使用实时数据库我必须将读写规则切换为true,完全忘了这样做。

记住小孩总是做你的功课。 :)

© www.soinside.com 2019 - 2024. All rights reserved.