android - 减少 android Firestore 中的代码重复
问题描述
我真的在努力使用 Firestore 来减少代码的重复。最近我问了一个不同主题但有点相似的问题。在这里,我要问的问题是如何减少 android for Firestore 中的代码重复?
假设我必须按名称获取city
文档,city
那么我必须每次编写此代码。
db.collection("cities")
.whereEqualTo("name", name)
.get()
.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot query) {
query.getDocuments().get(0).getReference();
// make custom call back here to get the value of this
// outside of here but that is not enough to reduce
// duplication of code.
}
});
假设我必须获取 10 个文档,并且在应用程序中可能会重复大约一百次,然后100*10 = 1000
重复类似的代码,真的吗?我没有找到任何解决此问题的方法。我不知道为什么没有足够的信息?Firestore 是否有任何代码模式?这可以帮助我减少重写代码的工作量吗?
不知道为什么这迫使我在编码重复上下文中讨厌 Firestore。-_-
@Downvoter,如果您认为这是一个愚蠢的问题,那么请详细说明为什么?你知道答案吗?或者有没有类似的问题有答案?
解决方案
您可以通过定义此方法来稍微减少重复:
void addCityListener(String name, OnSuccessListener<QuerySnapshot> listener){
db.collection("cities")
.whereEqualTo("name", name)
.get()
.addOnSuccessListener(listener);
}
然后,你调用这样的方法:
addCityListener(name, new OnSuccessListener<QuerySnapshot>(){
@Override
public void onSuccess(QuerySnapshot query){
// do something with the query
}
});
如果您在项目中使用 Java 8,则可以使用 lambda 进一步减少代码:
addCityListener(name, (QuerySnapshot query)->{
// do something with the query
});
推荐阅读
- javascript - 添加在使用 javascript 加载网站时不需要可见的大部分 HTML 是否是一种不好的做法?
- pdf - Puppeteer PDF,页脚和内容在同一行?
- php - PHP中的数组比较和重新排序
- azure-ad-b2c - Azure Active Directory B2C - IE 问题
- r - caret::train 包中 type = 'prob' 参数的问题
- loops - ASP.Net Core MVC 更新模型
- typescript - 如何在单击按钮时在 nginx 中的多个页面中重定向
- react-native - React Native Production App 在异常时显示空白屏幕
- list - 从序言中的其他列表创建第二个列表
- flutter - 我正在尝试在 Flutter 中实现 mapbox_gl api。如何将 mapbox 访问令牌设置为系统变量或环境变量