小编Pat*_*ild的帖子

运行多个 Firestore 查询并等待所有查询完成

在我的应用程序中,我想在开始片段之前对我的数据库执行 4 次查询。

不知何故,我试图实现的是:

Task t1 = Query1.get().onSuccesListener.... ; 
Task t2 = Query2.get().onSuccesListener.... ; 
Task t3 = Query3.get().onSuccesListener.... ; 
Task t4 = Query4.get().onSuccesListener.... ; 
Run Code Online (Sandbox Code Playgroud)

我无论如何都找不到Task在 Android 中使用它们的方法,因此我尝试在 a 中运行查询AsynTask,然后AsyncTask使用 Latch等待所有操作完成onPostExecuted

这是我AsyncTask的查询之一的示例。

private class GetLandlordsRoomQuery extends AsyncTask<Void, Void, Void> {
        ArrayList<RoomPosted> landlordsRooms = new ArrayList<>();
        @Override
        protected Void doInBackground(Void... voids) {
            Query removeNonTenant = FirebaseFirestore.getInstance()
                    .collection(DataBasePath.ROOMS.getValue())
                    .whereEqualTo("landlordID", FirebaseAuth.getInstance().getUid());

            removeNonTenant.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
                @Override
                public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
                    for (DocumentSnapshot d : …
Run Code Online (Sandbox Code Playgroud)

java android android-asynctask firebase google-cloud-firestore

2
推荐指数
1
解决办法
2415
查看次数

Firebase 实时数据库与存储

我使用实时数据库来存储我的用户配置文件。

每个配置文件都可以包含多个房间,每个房间都包含自己的图片,从而创建了一个非常复杂的结构。

这里有一个例子: 在此处输入图片说明

为了更容易地将图片存储到相应的配置文件和房间,我在将对象解析到数据库之前将 android 中的图片位图更改为字符串,然后当我取回对象时,我将字符串转换回位图。

我只是想知道这是否会在未来降低成本。或者如果这个实现是安全的,我们将更多的数据放在数据库中。

android firebase firebase-realtime-database firebase-storage

1
推荐指数
1
解决办法
609
查看次数