java - DatabaseReference 的 setValue() 方法是否有一次调用中可以写入的最大子级数?

标签 java android firebase firebase-realtime-database hashmap

我正在尝试从 AndroidStudio 应用将数据写入 Firebase 的实时数据库。我必须在不同的 child 中编写一些Java HashMap,但我注意到当HashMap的大小大于120k时,HashMap不会存储在实时数据库中(但没有显示错误)。相反,如果大小小于 120k,则一切正常,并且 HashMap 的每个条目都将成为数据库中相应子项的条目。是尺寸问题吗?怎么解决呢?

这是我正在使用的代码:

FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("parent");
for(int i=0;i<myMaps.length;i++){
    myRef.child("child"+i).setValue(myMaps[i]);
}

编辑:我认为这不是重量问题。示例:
myMaps[x] 有 127k 个条目,重 5.5MB ==> 未写入
myMaps[y] 包含 119k 条目,大小为 9.7MB ==> 已写入
而且每个 HashMap 的大小不到 11MB。

最佳答案

根据documentation :

Size of a single write request to the database

Limit: 256 MB from the REST API; 16 MB from the SDKs.

Notes: The total data in each write operation should be less than 256 MB. Multi-path updates are subject to the same size limitation.

您可能超出了此限制。

我认为映射中的条目数量并不重要 - 它可能是其中所有数据的总序列化大小。

关于java - DatabaseReference 的 setValue() 方法是否有一次调用中可以写入的最大子级数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60767400/

相关文章:

Java:在最终类中实现接口(interface)的类

android - 如何使蓝牙 SPP 连接过程更可靠?

firebase - Firestore 用户管理最佳实践?

javascript - 如何安全地记录用户统计信息

javascript - 获取 Firestore 文档时无法加载 'protobuf.js'

java - Eclipse Mars 不保存首选项

java - sendRedirect 不适用于 jsp 但适用于 html 页面

java - Android studio 使用代码为按钮设置十六进制颜色值

android - XML 有空体吗?

java - SwingWorker 没有停止