android - 我无法从 Firestore 读取数据
问题描述
我最近开始使用 Firestore 进行开发,我附加的方法存在以下问题。
public void PopulateList() {
_db = FirebaseFirestore.getInstance();
if (new Networks( _activity ).verficaConexion()){
storeRoomArrayList = new ArrayList <>();
_db.collection( Colections.StoreRoom.NOMBRECOLECCION )
.get()
.addOnCompleteListener( new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task <QuerySnapshot> task) {
if (task.isSuccessful()){
for (QueryDocumentSnapshot document : task.getResult()) {
String claveRepuesto = document.getData().get( Colections.StoreRoom.CLAVEREPUESTO ).toString();
String descripcion = document.getData().get( Colections.StoreRoom.DESCRIPCION ).toString();
String familia = document.getData().get( Colections.StoreRoom.FAMILIA ).toString();
String idFamilia = document.getData().get( Colections.StoreRoom.IDFAMILIA ).toString();
String idSubFamilia = document.getData().get( Colections.StoreRoom.IDSUBFAMILIA ).toString();
String interno = document.getData().get( Colections.StoreRoom.INTERNO ).toString();
String marca = document.getData().get( Colections.StoreRoom.MARCA ).toString();
String nroParte = document.getData().get( Colections.StoreRoom.NUMERODEPARTE ).toString();
String nroSerie = document.getData().get( Colections.StoreRoom.NUMERODESERIE ).toString();
String subFamilia = document.getData().get( Colections.StoreRoom.SUBFAMILIA ).toString();
String uniMedida = document.getData().get( Colections.StoreRoom.UMEDIDA ).toString();
storeRoomArrayList.add( new StoreRoom( claveRepuesto, descripcion,
familia, idFamilia, idSubFamilia, interno, marca, nroParte,
nroSerie, subFamilia, uniMedida ) );
}
InitRecyclerView(storeRoomArrayList);
} else{
Log.d("CargoListaStoreRoom", "Error getting documents: ", task.getException());
}
}
});
}else{
Snackbar.make( this._progressBar, "Error Conexion", Snackbar.LENGTH_LONG ).show();
}
}
我不知道为什么在方法的“.get.addOnCompleteListener”行中退出而不进入“onComplete”。这种方法不是我唯一的。我有另一个类似这样的例程,但一切正常。
我遇到麻烦的 Firestore 集合:
这是许可规则
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth.uid != null;
}
}
}
这是 StoreRoom 类。
package Models.Pojo;
public class StoreRoom {
private String _idRepuesto;
private String _idFamilia;
private String _familia;
private String _idSubFamilia;
private String _interno;
private String _claveRepuesto;
private String _descripcion;
private String _marca;
private String _unidadMedida;
private String _nroParte;
private String _nroSerie;
public String get_idRepuesto() { return _idRepuesto; }
public void set_idRepuesto(String _idRepuesto) { this._idRepuesto = _idRepuesto; }
public String get_idFamilia() { return _idFamilia; }
public void set_idFamilia(String _idFamilia) { this._idFamilia = _idFamilia; }
public String get_familia() { return _familia; }
public void set_familia(String _familia) { this._familia = _familia; }
public String get_idSubFamilia() { return _idSubFamilia; }
public void set_idSubFamilia(String _idSubFamilia) { this._idSubFamilia = _idSubFamilia; }
public String get_interno() { return _interno; }
public void set_interno(String _interno) { this._interno = _interno; }
public String get_claveRepuesto() { return _claveRepuesto; }
public void set_claveRepuesto(String _claveRepuesto) { this._claveRepuesto = _claveRepuesto;}
public String get_descripcion() { return _descripcion; }
public void set_descripcion(String _descripcion) { this._descripcion = _descripcion; }
public String get_marca() { return _marca;}
public void set_marca(String _marca) {this._marca = _marca; }
public String get_unidadMedida() { return _unidadMedida; }
public void set_unidadMedida(String _unidadMedida) { this._unidadMedida = _unidadMedida; }
public String get_nroParte() { return _nroParte; }
public void set_nroParte(String _nroParte) {this._nroParte = _nroParte; }
public String get_nroSerie() { return _nroSerie; }
public void set_nroSerie(String _nroSerie) { this._nroSerie = _nroSerie; }
public StoreRoom(String _idRepuesto, String _idFamilia, String _familia, String _idSubFamilia,
String _interno, String _claveRepuesto, String _descripcion, String _marca,
String _unidadMedida, String _nroParte, String _nroSerie) {
this._idRepuesto = _idRepuesto;
this._idFamilia = _idFamilia;
this._familia = _familia;
this._idSubFamilia = _idSubFamilia;
this._interno = _interno;
this._claveRepuesto = _claveRepuesto;
this._descripcion = _descripcion;
this._marca = _marca;
this._unidadMedida = _unidadMedida;
this._nroParte = _nroParte;
this._nroSerie = _nroSerie;
}
}
解决方案
好的,我可以解决问题。
public static class StoreRoom{
public static String NOMBRECOLECCION = "Repuestos";
public static String IDREPUESTO = "IdRepuesto";
public static String IDFAMILIA = "IdFamilia";
public static String FAMILIA = "Familia";
public static String IDSUBFAMILIA = "IdSubFamlia";
public static String SUBFAMILIA = "SubFamilia";
public static String INTERNO = "Interno";
public static String CLAVEREPUESTO = "ClaveRepuesto";
public static String DESCRIPCION = "Descripcion";
public static String MARCA = "Marca";
public static String UMEDIDA = "UnidadMedida";
public static String NUMERODEPARTE = "NroParte";
public static String NUMERODESERIE = "NroSerie";
}
在Collection Im 的定义中丢失了一封信。我写了public static String IDSUBFAMILIA = "IdSubFamlia"; 正确的是public static String IDSUBFAMILIA = "IdSubFam i lia" ;
当我用你要求我做的事情更新帖子时,我才看到它。我为我让你失去的那段时间感到难过。对此我深表歉意。
非常感谢
推荐阅读
- python - 绘制 pandas DataFrame - group by - 如何为每个生成的图添加不同的标题
- php - 在 PHP 中使用 $_POST['name_surname'] 保存图像(来自输入)
- sql - Sybase ASE:如何通过扩展禁用非标准组
- python - 如何使用 Telethon 从频道 ID 获取参与者
- python - 需要使用“请求”帮助的 Python Web Scraping
- reactjs - React Table 7 - 如何更改由 React-Table API 动态创建的单个按钮的状态
- discord.js - 如何使用您的机器人 Discord.js 编辑嵌入?
- java - 使用 Tomcat 插件的 Jersey webapp 未部署
- c - 使用 syslog-ng 在 json 日志中显示特殊字符
- laravel - 如何在 Carbon 上自动捕捉这一天?