Ham*_*mza 7 android firebase google-cloud-firestore
像firebase实时数据库一样,我不想在firestore集合中存储空/空值。所以我如何从firestore集合中跳过或删除空字段 
下面的功能将数据保存到firestore
private void saveTofireStore(String path, User userObject,Class<?> classType){
FirebaseFirestore db = FirebaseFirestore.getInstance();
documentReference = db.document(path);
Log.d(TAG,""+documentReference.getPath());
documentReference
.set(userObject)
.addOnCompleteListener(task -> {
if (task.isSuccessful()){
appearanceMutableLiveData.setValue(task.getResult());
}else {
appearanceMutableLiveData.setValue(null);
}
});
}
Run Code Online (Sandbox Code Playgroud)
我找到了一种使用 Gson 序列化对象然后转换为地图的简单方法,然后您可以保存该对象
private Map<String, Object> removeNullValues(User userObject) {
Gson gson = new GsonBuilder().create();
Map<String, Object> map = new Gson().fromJson(
gson.toJson(userObject), new TypeToken<HashMap<String, Object>>() {
}.getType()
);
return map;
}
Run Code Online (Sandbox Code Playgroud)
进而
documentReference
.set( removeNullValues( userObject) )
.addOnSuccessListener {}
Run Code Online (Sandbox Code Playgroud)
如果您正在使用 proguard,请确保添加此规则
-keepclassmembers enum * { *; }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2520 次 |
| 最近记录: |