在我的应用程序中,我想在开始片段之前对我的数据库执行 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
我使用实时数据库来存储我的用户配置文件。
每个配置文件都可以包含多个房间,每个房间都包含自己的图片,从而创建了一个非常复杂的结构。
为了更容易地将图片存储到相应的配置文件和房间,我在将对象解析到数据库之前将 android 中的图片位图更改为字符串,然后当我取回对象时,我将字符串转换回位图。
我只是想知道这是否会在未来降低成本。或者如果这个实现是安全的,我们将更多的数据放在数据库中。
android firebase firebase-realtime-database firebase-storage