gpt4 book ai didi

android - Kotlin - 如何执行 onCompleteListener 以从 Firestore 获取数据?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:34:13 26 4
gpt4 key购买 nike

我在从 Firestore 获取数据时遇到问题,在 Java 代码中我们可以这样做:

DocumentReference docRef = db.collection("cities").document("SF");
docRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
DocumentSnapshot document = task.getResult();
if (document != null) {
Log.d(TAG, "DocumentSnapshot data: " + task.getResult().getData());
} else {
Log.d(TAG, "No such document");
}
} else {
Log.d(TAG, "get failed with ", task.getException());
}
}
});

但在 Kotlin 中,当我尝试覆盖 onComplete 函数时,它不可用。那么,我怎样才能得到“任务”呢?

最佳答案

如果您使用的是 Android Studio 3,您可以使用它来 convert Java code to Kotlin .将感兴趣的代码放入 java 文件中,然后从菜单栏中选择代码 > 将 Java 文件转换为 Kotlin 文件

例如,对于您发布的这段代码,转换结果如下所示:

import android.support.annotation.NonNull;
import android.util.Log;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.firestore.DocumentReference;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.FirebaseFirestore;

public class ConversionExample {
private static final String TAG = "ConversionExample";

public void getDoc() {
FirebaseFirestore db = FirebaseFirestore.getInstance();

DocumentReference docRef = db.collection("cities").document("SF");
docRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
DocumentSnapshot document = task.getResult();
if (document != null) {
Log.d(TAG, "DocumentSnapshot data: " + task.getResult().getData());
} else {
Log.d(TAG, "No such document");
}
} else {
Log.d(TAG, "get failed with ", task.getException());
}
}
});
}
}

转换为 Kotlin 的文件:

import android.util.Log

import com.google.firebase.firestore.FirebaseFirestore

class ConversionExample {

fun getDoc() {
val db = FirebaseFirestore.getInstance()

val docRef = db.collection("cities").document("SF")
docRef.get().addOnCompleteListener { task ->
if (task.isSuccessful) {
val document = task.result
if (document != null) {
Log.d(TAG, "DocumentSnapshot data: " + task.result.data)
} else {
Log.d(TAG, "No such document")
}
} else {
Log.d(TAG, "get failed with ", task.exception)
}
}
}

companion object {
private val TAG = "ConversionExample"
}
}

关于android - Kotlin - 如何执行 onCompleteListener 以从 Firestore 获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47214368/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com