【问题标题】:Retrieving firebase data in one go一次性检索 Firebase 数据
【发布时间】:2021-06-17 21:16:50
【问题描述】:

我正在尝试检索一个名为作业的集合,其中每个作业包含 3 个不同的字段。然后我想在数组列表上显示所有 3 个字段的每个作业。我的应用程序运行但它返回一项内容为:java.lang.field@2234456

这是我的代码:

 ListView jobList;
 ArrayList<String> jobInfo = new ArrayList<String>();
 ArrayAdapter arrayAdapter;
 Task hello;
 String hi;
 FieldPath ha;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_see_jobs2);
    jobList = (ListView) findViewById(R.id.jobList);
    setTitle("Hello");
    arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, jobInfo);
    jobList.setAdapter(arrayAdapter);
    jobList.setAdapter(arrayAdapter);
    hello = FirebaseFirestore.getInstance().collectionGroup("jobs").get().addOnCompleteListener(new 
     OnCompleteListener<QuerySnapshot>() {
        @Override
        public void onComplete(@NonNull Task<QuerySnapshot> task) {
            hi = QuerySnapshot.class.getFields().toString();
            hi.toString();
        }
    });
    jobInfo.add(QuerySnapshot.class.getDeclaredFields().toString());
 }

【问题讨论】:

    标签: java android firebase google-cloud-firestore


    【解决方案1】:

    不是从 Firestore 文档中获取数据的方式:

    QuerySnapshot.class.getFields()
    

    这会查找在 QuerySnapshot 类上声明的字段,这根本不是您感兴趣的。

    如果我们查看 getting data from multiple documents 上的 Firebase 文档,您会发现我们可以通过以下方式获取数据:

    public void onComplete(@NonNull Task<QuerySnapshot> task) {
        if (task.isSuccessful()) {
            for (QueryDocumentSnapshot document : task.getResult()) {
                Log.d(TAG, document.getId() + " => " + document.getData());
            }
        } else {
            Log.d(TAG, "Error getting documents: ", task.getException());
        }
    }
    

    所以这个:

    1. 循环遍历从数据库中返回的文档。
    2. 然后用document.getData()从每个文档中获取数据,返回一个Map

    如果您查看DocumentSnapshot class 的参考文档,您会发现我们还可以通过以下方式获取特定字段的值:

    document.get("nameOfThefield")
    

    然后,您需要将字段值添加到jobInfo.add(...) inside onComplete 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-18
      • 2016-12-29
      相关资源
      最近更新 更多