Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.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
如何将数据直接从Firebase Cloud Firestore检索到自定义JAVA对象中_Java_Android_Firebase_Google Cloud Firestore - Fatal编程技术网

如何将数据直接从Firebase Cloud Firestore检索到自定义JAVA对象中

如何将数据直接从Firebase Cloud Firestore检索到自定义JAVA对象中,java,android,firebase,google-cloud-firestore,Java,Android,Firebase,Google Cloud Firestore,我无法插入图像,您可以访问上面的链接或阅读下面的说明。 Firestore中的文档就是这样呈现的- Profile DOB 23032001 age 19 membership "GOLD" name "Saheel" trainer_name "trainer1" 我通过Firebase控制台手动添加了数据。现在,我想将数据检索到我在应用程序中创建的自定义Java对象中。 此对象是为文档量身定制的。 测试班- package c

我无法插入图像,您可以访问上面的链接或阅读下面的说明。 Firestore中的文档就是这样呈现的-

Profile

DOB 23032001
age 19
membership "GOLD"
name "Saheel"
trainer_name "trainer1" 
我通过Firebase控制台手动添加了数据。现在,我想将数据检索到我在应用程序中创建的自定义Java对象中。 此对象是为文档量身定制的。 测试班-

package com.example.firebase;
公开课考试{
私有字符串名称;
私人int DOB;
私人互联网;
私人字符串成员资格;
私人字符串训练器名称;
公共测试(字符串名称、整数DOB、整数年龄、字符串成员资格、字符串训练器名称){
this.name=名称;
this.DOB=DOB;
这个。年龄=年龄;
这个.会员资格=会员资格;
this.trainer\u name=trainer\u name;
}
公开考试(){
//无参数构造函数
}
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
public int getDOB(){
返回DOB;
}
公共无效设置日期(内部日期){
this.DOB=DOB;
}
公共整数getAge(){
回归年龄;
}
公共无效设置(整数){
这个。年龄=年龄;
}
公共字符串getMembership(){
返回会员资格;
}
公共void集合成员资格(字符串成员资格){
这个.会员资格=会员资格;
}
公共字符串getTrainer\u name(){
返回培训师姓名;
}
公共无效setTrainer\u名称(字符串trainer\u名称){
this.trainer\u name=trainer\u name;
}
}
从数据库请求数据的代码-

//CUSTOM OBJECTS

        db.collection("users").document("Saheel").collection("profile")
                .document("profile").get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
            @Override
            public void onSuccess(DocumentSnapshot documentSnapshot) {
                test test =documentSnapshot.toObject(com.example.firebase.test.class);
                name_t.setText(test.getName());
                age_t.setText(test.getAge());
                dob_t.setText(test.getDOB());
                membership_t.setText(test.getMembership());
                trainer_t.setText(test.getTrainer_name());
            }
        });
我是否遵循了正确的程序?是否可以在Firestore中执行此操作?

由于
text.getDOB()
返回一个int,因此此代码试图将整数放入TextView:

dob_t.setText(test.getDOB());
当您使用整数调用setText时,Android会将该整数视为具有给定数字ID的字符串资源。由于Android找不到该字符串资源,因此它会崩溃

如果需要在文本视图中将数字显示为字符串,则需要先将其转换为字符串:

dob_t.setText(Integer.toString(test.getDOB()));

请编辑问题以显示生成此错误的代码。到目前为止,你所拥有的还不够。堆栈跟踪指向对MainActivity中setText的调用。@DougStevenson进行了更改
位于android.content.res.Resources.getText(Resources.java:444)位于android.widget.TextView.setText(TextView.java:6412)
您是如何从上面的几行中找到这一点的?这些数字代码指的是什么?我做安卓开发已经很长时间了。这是一个常见的混淆点。
dob_t.setText(Integer.toString(test.getDOB()));