【发布时间】:2018-02-13 04:21:59
【问题描述】:
您好,我有 2 个数组,例如 电话号码[1,2,3] 金额[10,20,30] 我需要将数据存储在单个文档中,例如 字段1:1 字段2:10
我试过的代码是
我拿了像 **
public class Pojo {
String invitee;
Map<Integer,Integer>phoneAmount;
public Pojo(String invitee, Map<Integer, Integer> phoneAmount)
{
this.invitee = invitee;
this.phoneAmount=phoneAmount;
}
}**
在另一个班级
Map<int[], int[]> phoneAmount = new HashMap<>();
phoneAmount.put(phonenumber,amount);
db.collection("Split").document("invitees").set(phoneAmount).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Log.d(TAG, "DocumentSnapshot successfully written!");
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.w(TAG, "Error writing document", e);
}
});
它显示如下错误 java.lang.RuntimeException: 无法序列化对象。不支持具有非字符串键的映射 在 com.google.android.gms.internal.zzejw.zza(未知来源) 在 com.google.android.gms.internal.zzejw.zza(未知来源) 在 com.google.android.gms.internal.zzejw.zzbp(未知来源)
【问题讨论】:
-
尝试使用带有一个
String field和一个Map<int,int> phoneAmount和一个构造函数public YourPojoClass(String title, Map<int,int> phoneAmount )的 pojo 类。通过这种方式,您可以将项目添加到phoneAmount对象,如phoneAmount.put(phoneNumber, amount);,然后在创建 PojoClass 的对象(如MyPojo pojo= new MyPojo ("invite", phoneAmount );)后将文档添加到集合引用(如db.collection("Split").document("lahari").set(yourPojoClass)) -
@MohammedFarhan 你能给我看一个这个场景的例子吗?我处于混乱状态
-
请按照下面的亚历克斯回答,它类似于我的评论,将满足您的要求。
-
谢谢@MohammedFarhan
-
查看这里query
标签: android ios google-cloud-firestore