Android上带有长字符串的Firebase异常

Posted

技术标签:

【中文标题】Android上带有长字符串的Firebase异常【英文标题】:Firebase exception with long Strings on Android 【发布时间】:2013-07-08 05:07:45 【问题描述】:

我想将图像作为字符串保存到 Firebase。为此,我将其编码为 Base64 字符串。

对于较小的图像,一切正常(例如 15128 个字符的字符串是可以的),但对于较大的图像,我得到一个例外。

这是堆栈跟踪,此图像是经过 Base64 编码后编码的 34807 个字符长:

07-10 09:45:38.414      879-896/com.firebase.androidchat       E/DefaultRunLoop: Uncaught exception in Firebase runloop. Please report to support@firebase.com
        java.lang.StringIndexOutOfBoundsException: length=34807; regionStart=32768; regionLength=16384
        at java.lang.String.startEndAndLength(String.java:583)
        at java.lang.String.substring(String.java:1464)
        at com.firebase.client.utilities.Utilities.splitIntoFrames(Utilities.java:85)
        at com.firebase.client.realtime.WebsocketConnection.send(WebsocketConnection.java:159)
        at com.firebase.client.realtime.Connection.sendData(Connection.java:200)
        at com.firebase.client.realtime.Connection.sendRequest(Connection.java:89)
        at com.firebase.client.core.PersistentConnection.sendAction(PersistentConnection.java:744)
        at com.firebase.client.core.PersistentConnection.sendPut(PersistentConnection.java:697)
        at com.firebase.client.core.PersistentConnection.putInternal(PersistentConnection.java:684)
        at com.firebase.client.core.PersistentConnection.put(PersistentConnection.java:307)
        at com.firebase.client.core.PersistentConnection.put(PersistentConnection.java:303)
        at com.firebase.client.core.Repo.setValue(Repo.java:215)
        at com.firebase.client.Firebase$1.run(Firebase.java:427)

我达到了允许的最大 Firebase 字符串大小还是 Android SDK 中的错误?有什么解决方法吗?

【问题讨论】:

似乎是一个错误,但在 com.firebase.client.utilities.Utilities.splitIntoFrames 的 firebase 客户端库中 这里是 Firebase 开发者。我可以确认这是 Android SDK 中的一个错误。我们的最大字符串大小为 10mb,但您遇到的只是一个错误。我们应该能够在下周初推出一个固定版本。带来不便敬请谅解!如果您急需解决方法,可以暂时考虑使用我们的 REST API (firebase.com/docs/rest-api.html) 上传图片。 谢谢!我会活到下周;-) 【参考方案1】:

Firebase 开发人员在这里。最新版本的 SDK (v1.0.2) 应该可以解决这个问题。你可以试一试,如果解决了,请告诉我?

https://www.firebase.com/docs/downloads.html

【讨论】:

【参考方案2】:

这只是 gradle 文件的旧版本 firebase 数据库依赖的问题,只需将其更新为最新版本... 就是这样

【讨论】:

是的,这发生在他们在 Android 上的第一个版本中:D

以上是关于Android上带有长字符串的Firebase异常的主要内容,如果未能解决你的问题,请参考以下文章

Firebase Cloud Messaging 无法在带有 Flutter 应用程序的 Android 上运行

带有 Firebase 云消息传递的 Flutter 2.0:onMessage 未在 Android 上调用

使用带有 android firebase 短信认证的模拟器

Firebase/Android:将检索到的值从 Firebase 添加到 arraylist 会返回空指针异常

带有一个适用于android、ios、web的插件的flutter firebase(实时)数据库? [复制]

动态创建的 Firebase 动态链接不适用于 Android