我是安卓工作室的初学者。当我试图遵循某人的代码时,会出现错误。我的代码是这样的:
getReference.child("Owner").child(getUserID).child("Ternak").push()
.setValue(new LiveStockData(getNamaTernak, getNamaPeternak, getJenisTernak))
.addOnSuccessListener(this, new OnSuccessListener() {
@Override
public void onSuccess(Object o) {
//Peristiwa ini terjadi saat user berhasil menyimpan datanya kedalam Database
namaTernak.setText("");
namaPeternak.setText("");
jenisTernak.setText("");
Toast.makeText(addDataActivity.this, "Data Tersimpan", Toast.LENGTH_SHORT).show();
}
});
然后我得到了这个错误:
error: no suitable method found for addOnSuccessListener(<anonymous OnClickListener>,<anonymous OnSuccessListener<Void>>)
.addOnSuccessListener(this, new OnSuccessListener<Void>() {
^
method Task.addOnSuccessListener(Executor,OnSuccessListener<? super Void>) is not applicable
(argument mismatch; <anonymous OnClickListener> cannot be converted to Executor)
method Task.addOnSuccessListener(Activity,OnSuccessListener<? super Void>) is not applicable
(argument mismatch; <anonymous OnClickListener> cannot be converted to Activity)
我应该怎么做才能解决错误?
我认为您不需要提供上下文作为onSuccessListener
中的第一个参数,所以可以这样尝试:
getReference.child("Owner").child(getUserID).child("Ternak").push()
.setValue(new LiveStockData(getNamaTernak, getNamaPeternak, getJenisTernak))
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Object o) {
//Peristiwa ini terjadi saat user berhasil menyimpan datanya kedalam Database
namaTernak.setText("");
namaPeternak.setText("");
jenisTernak.setText("");
Toast.makeText(addDataActivity.this, "Data Tersimpan", Toast.LENGTH_SHORT).show();
}
});
我所做的只是改变了这一行:
.addOnSuccessListener(this, new OnSuccessListener() {
到此行:
.addOnSuccessListener(new OnSuccessListener<Void>() {
编辑:根据本文档,您不需要提供this
作为第一个参数。因此,请检查与Firebase相关的任何内容:https://firebase.google.com/docs/database/android/read-and-write#add_a_completion_callback
还要注意这些教程,因为Firebase会随着时间的推移而变化,所以有些教程可能已经过时了。查看文档,了解更多关于其工作原理的知识和理解:https://firebase.google.com/docs/guides