繁体   English   中英

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

[英]Android spinner not showing Firebase Realtime Database data?

我在这个问题上困扰了很长时间。 我想在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数据库

这是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
        }
);

好的,因此使用实时数据库时,我不得不将读取和写入规则切换为true,完全忘记了这样做。

记住,孩子们总是做功课。 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM