开发者社区> 问答> 正文

如何从Firebase获取字符串和整数?

你好!

我正在使用Firebase制作测验应用程序。我使用String来获取firebase值:

private String question;
private String answerOne;
private String answerTwo;
private String answerThree;
private String answerFour;
private String correctAnswer;

public ChoiceQuestion(String question, String answerOne, String answerTwo, String answerThree, String answerFour, String correctAnswer) {
    this.question = question;
    this.answerOne = answerOne;
    this.answerTwo = answerTwo;
    this.answerThree = answerThree;
    this.answerFour = answerFour;
    this.correctAnswer = correctAnswer;
}

public ChoiceQuestion() {

}

public String getQuestion() {
    return question;
}

public void setQuestion(String question) {
    this.question = question;
}

public String getAnswerOne() {
    return answerOne;
}

public void setAnswerOne(String answerOne) {
    this.answerOne = answerOne;
}

public String getAnswerTwo() {
    return answerTwo;
}

public void setAnswerTwo(String answerTwo) {
    this.answerTwo = answerTwo;
}

public String getAnswerThree() {
    return answerThree;
}

public void setAnswerThree(String answerThree) {
    this.answerThree = answerThree;
}

public String getAnswerFour() {
    return answerFour;
}

public void setAnswerFour(String answerFour) {
    this.answerFour = answerFour;
}

public String getCorrectAnswer() {
    return correctAnswer;
}

public void setCorrectAnswer(String correctAnswer) {
    this.correctAnswer = correctAnswer;
}

显然,我从firebase获取值的方法仅包含字符串。例如,在问题1中,我要所有答案文本。但是问题2,我希望所有答案都为NUMBER,但是我无法获得此数字,因为我的方法是String而不是Int(您能理解吗?),我需要一种方法来获取这两种类型的变量!

谢谢!

展开
收起
Puppet 2020-01-17 09:13:28 387 0
1 条回答
写回答
取消 提交回答
  • 假定您具有对数据库的引用,则可以使用以下代码以不同的格式获取值。

    
    firebaseRef.child( **PATH_TO_NODE **).
                        addValueEventListener(new ValueEventListener() {
                            @Override
                            public void onDataChange(DataSnapshot dataSnapshot) {
                              //Gets the String Value 
                              String value = dataSnapshot.getValue(String.class));
                               if(isNumeric(value))
                                {
                                  //value can be casted to int
                                }
                            }
    
                        }
                        @Override
                        public void onCancelled (DatabaseError databaseError){
    
                        }
                    });
    
    static boolean isNumeric(String strNum) {
     if (strNum == null) { 
         return false;
     } try {
         double d = Double.parseDouble(strNum);
     } catch (NumberFormatException nfe) { 
         return false;
     } return true; }
    
    

    另外,由于您有POJO,因此可以直接使用 getValue(YourClass.class)

    2020-01-17 09:13:48
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载