- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在从 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/
我读过这篇文章answer其中表示使用 get() 函数时无需删除任何监听器,这是否适用于 set()、update()和delete()? 如何区分监听器何时需要移除?我很困惑,几天来我一直在与听众
我有一个 MyActivity由 FragmentA 组成和 FragmentB和 MyActivityPresenter . fragment A: @OnClick(R.id.proceed_si
AuthResult 为红色。请帮我。也无法导入。它说找不到符号。他们有什么问题吗?我尝试了很多,但没有找到解决办法。 单击 ALT+ENTER 时,不显示导入任何内容 LoginActivity.j
我正在使用实时数据库,感觉以下两种方法有点混淆: ROOT_REF.updateChildren(map, new DatabaseReference.CompletionListener() {
我正在尝试实现 Firebase 远程配置: override fun onCreate(savedInstanceState: Bundle?) { val configSettings =
我正在尝试获取智能手机的 GPS,如下面的代码: 在 Activity.java ,我使用以下代码获取 GPS。 private GPSClass gps; gps.getGPSLocation();
我正在尝试读取我的云 Firestore 中的数据并将其放入名为“urlList”的数组中。 arrayList 在 onComplete 中,如果我在那里记录数组,它就可以工作(它充满了它应该拥有的
我想在 onCompleteListener 成功时获得一些返回值,但对于 Kotlin 和 lambda,我无法获得。我读了这个doc . 我正在使用这个 onCompleteListener 从
CreateView 方法上的自定义对话框在 Firebase Firestore onCompletelistener 获取要列出的数据之前返回。这就是为什么没有 View 显示。 我用CardVi
我正在使用 Cloud Firestore 数据库填充 Android 应用中的 RecyclerView。我通过在 fragment 的 onAttach 方法中使用任务来获取数据。我需要能够使用
我在从 Firestore 获取数据时遇到问题,在 Java 代码中我们可以这样做: DocumentReference docRef = db.collection("cities").docume
我正在构建一个使用 Firebase 做两件事的客户端应用程序: 用户认证 使用实时数据库 我已经成功地在我的客户端和后端服务器上正确设置了所有内容(使用 Firebase 的 Admin SDK),
我在 Java 8 SE 中使用 OnCompleteListerner 时遇到错误匿名 new OnCompleteListener() 可以用 lambda less 替换... (Ctrl+F1
这个问题在这里已经有了答案: How to return a DocumentSnapShot as a result of a method? (2 个答案) 关闭 3 年前。 我正在使用 fir
我编写了一段代码来使用 Firebase Auth 创建新帐户: public static int signUp(String email, String password) { mAuth.c
下面是代码。我在编码方面没有太多经验。希望你能帮助我!非常感谢=) 我的错误是: error: incompatible types: > cannot be converted to OnCompl
我是一名优秀的程序员,十分优秀!