Android OnCompleteListener-OnDeleteListener-OnUpdateListener 试试看{ Myclass S=新的S(); //这里我给出我的变量 如果(变量代码!=0){ MainActivity.db。 集合(“S”)。 文件(“+S”)。 集合。 //问题是这里我想要的不是添加,而是删除和更新 addOnCompleteListener(新的OnCompleteListener(){ @凌驾 未完成的公共void(@NonNull任务){ Toast.makeText(getActivity(),“下一个匹配项在”+var_currentdate+“In Town”'+var_Town+“”,Toast.LENGTH_LONG.show(); } }) .addOnFailureListener(新的OnFailureListener(){ @凌驾 public void onFailure(@NonNull异常e){ Toast.makeText(getActivity(),“添加操作失败”,Toast.LENGTH_LONG.show(); } }); }否则{ Toast.makeText(getActivity(),“您需要完成团队代码”,Toast.LENGTH_LONG.show(); } }捕获(例外e){ String message=e.getMessage(); Toast.makeText(getActivity(),message,Toast.LENGTH_LONG).show(); } } });
这是“添加”-插入的代码。我写入而不是addOnCompleteListener,我写入deleteOnCompleteListener。因此,我将使用delete从Firestore中删除值。另外,我也用了类似的方法更新。但是我也失败了,我没有添加完整的listener,而是编写了updateOnCompleteListener。到底出了什么问题?Android OnCompleteListener-OnDeleteListener-OnUpdateListener 试试看{ Myclass S=新的S(); //这里我给出我的变量 如果(变量代码!=0){ MainActivity.db。 集合(“S”)。 文件(“+S”)。 集合。 //问题是这里我想要的不是添加,而是删除和更新 addOnCompleteListener(新的OnCompleteListener(){ @凌驾 未完成的公共void(@NonNull任务){ Toast.makeText(getActivity(),“下一个匹配项在”+var_currentdate+“In Town”'+var_Town+“”,Toast.LENGTH_LONG.show(); } }) .addOnFailureListener(新的OnFailureListener(){ @凌驾 public void onFailure(@NonNull异常e){ Toast.makeText(getActivity(),“添加操作失败”,Toast.LENGTH_LONG.show(); } }); }否则{ Toast.makeText(getActivity(),“您需要完成团队代码”,Toast.LENGTH_LONG.show(); } }捕获(例外e){ String message=e.getMessage(); Toast.makeText(getActivity(),message,Toast.LENGTH_LONG).show(); } } });,android,firebase,google-cloud-firestore,Android,Firebase,Google Cloud Firestore,这是“添加”-插入的代码。我写入而不是addOnCompleteListener,我写入deleteOnCompleteListener。因此,我将使用delete从Firestore中删除值。另外,我也用了类似的方法更新。但是我也失败了,我没有添加完整的listener,而是编写了updateOnCompleteListener。到底出了什么问题?addOnCompleteListener表示您正在附加一个在操作完成(成功或失败)时触发的侦听器。侦听器本身不执行任何操作。您为其提供的代码块将在
addOnCompleteListener
表示您正在附加一个在操作完成(成功或失败)时触发的侦听器。侦听器本身不执行任何操作。您为其提供的代码块将在操作完成时运行
在您的例子中,您正在设置一些值并将侦听器附加到该操作,这意味着当设置值的操作完成时,将触发onComplete
块。如果要更新值,则需要使用update()而不是set()
有关设置和更新值以及添加文档等的更多信息,请阅读
有关删除值和文档的信息,请阅读
注:
您可能想考虑使用< <代码> AddieRealListInter < /C>和<代码> AddioRealUpListList< <代码>,而不是<代码> AddiOnthelististe<代码>,因为<>代码> AddiOnthelististAu//C>基本上总是在操作完成时触发,而不管它是否成功或失败。
但是,
addOnSuccessListener
和addOnFailureListener
非常简单,可以帮助您更有效地处理错误。没有deleteOnCompleteListener。您试图实现什么?从Firebase中删除数据。通过这种方式将这些变量插入Firebase。使用delete删除它们,使用update创建它们addOnCompleteListener
意味着您正在附加一个侦听器,该侦听器在操作完成时触发。侦听器本身不执行任何操作。您为其提供的代码块将在操作完成时运行。在您的例子中,您正在设置一些值并将侦听器附加到该操作,这意味着当设置值的操作完成时,您的onComplete
块将运行。如果要更新值,需要使用update
而不是set
并传递数据。删除是不同的。阅读documentations@MehranB如果你链接了相应的文档,听起来确实像是一个答案;)你们能把文件寄给我吗?因为我展示了这么多的信息和视频,我仍然感到困惑
try {
Myclass S = new S();
//here I give my variables
if (var_code !=0) {
MainActivity.db.
collection("S").
document("" + S).
set(S).
//the problem is here I want instead of add I want delete and update
addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Toast.makeText(getActivity(), "The Next Match is on"+var_currentdate+ "In Town '"+var_town+"'", Toast.LENGTH_LONG).show();
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(getActivity(),"add operation failed.",Toast.LENGTH_LONG).show();
}
});
}else {
Toast.makeText(getActivity(),"You Need To Complete The Teamcode",Toast.LENGTH_LONG).show();
}
} catch (Exception e) {
String message = e.getMessage();
Toast.makeText(getActivity(),message,Toast.LENGTH_LONG).show();
}
}
});