【问题标题】:How to fatch data from firebase database with model class [closed]如何使用模型类从 Firebase 数据库中获取数据
【发布时间】:2018-12-27 20:42:31
【问题描述】:

如何使用模型类从 firbase 数据库中获取数据?

【问题讨论】:

  • 那么你想创建一个包含key和word 2个字段的模型类?

标签: android firebase firebase-realtime-database


【解决方案1】:

让 ref 成为你的 DatabaseReference 然后 addValueEventListener

例子:

ref.addValueEventListener(new ValueEventListener() {
    public void onDataChange(DataSnapshot dataSnapshot){
       DataModel model = dataSnapshot.getValue(DataModel.class);
    }
}

任何类都可以做同样的事情,比如你想得到一个输出

String -> getValue(String.class)
Integer -> getValue(Integer.class)

【讨论】:

    【解决方案2】:

    你的模型,根据你要检索的数据应该是这样的(假设你只想要key和word)

     public class Model {
    
        private String key;
        private String word;
        private String baseText;
        private String mainText;
        private String type;
        private String url;
    
        public Model() {
        }
    
        public String getKey() {
            return key;
        }
    
        public void setKey(String key) {
            this.key = key;
        }
    
        public String getWord() {
            return word;
        }
    
        public void setWord(String word) {
            this.word = word;
        }
    
        public String getBaseText() {
            return baseText;
        }
    
        public void setBaseText(String baseText) {
            this.baseText = baseText;
        }
    
        public String getMainText() {
            return mainText;
        }
    
        public void setMainText(String mainText) {
            this.mainText = mainText;
        }
    
        public String getType() {
            return type;
        }
    
        public void setType(String type) {
            this.type = type;
        }
    
        public String getUrl() {
            return url;
        }
    
        public void setUrl(String url) {
            this.url = url;
        }
    }
    

    然后,您可以通过此操作获取该数据

    ref.addValueEventListener(new ValueEventListener() {
      @Override
      public void onDataChange(DataSnapshot dataSnapshot) {
        Model model = dataSnapshot.getValue(Model.class);
        log.d("Key: "+model.getKey() + " word: " + model.getWord());
      }
    
      @Override
      public void onCancelled(DatabaseError databaseError) {
        System.out.println("The read failed: " + databaseError.getCode());
      }
    });
    

    其中ref 是您要提取数据的节点处的DatabaseReference

    参考这个链接

    https://firebase.google.com/docs/database/admin/retrieve-data?hl=en#section-start

    【讨论】:

    • 我不想键和词,而是整个卡片数组列表模型
    • 我刚刚编辑了我的答案,然后你可以用同样的方式记录结果
    • Saillen 感谢您的回答,但不是工作键和单词是 hurigna 数组
    • 只需将它与您想要拥有数据的参考一起使用
    猜你喜欢
    • 1970-01-01
    • 2017-06-14
    • 1970-01-01
    • 2016-12-16
    • 2017-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多