我还没有找到任何好的文档来告诉我如何管理这个问题。是否有人可以参考此问题的指导?
对于Android应用,我已经开始使用Google Firebase存储以及我的实时数据库,我对如何确保文件上传和数据库更新以正确的顺序发生有疑问。
以前,我将音频文件编码为字符串,并将其作为单个哈希映射上传到FB数据库以及其他相关数据,以确保一致性。存储的相关数据是与用户可以访问音频的POJO,音频存储在数据库中的路径等等。
我的新设置是首先将音频文件上传到FB存储,并且一旦上传文件,就会触发相关数据的FB数据库更新。数据库侦听器指示完成后,应用程序将移至其他活动。
我担心这两步过程不稳定(用户在两个任务完成之前离开活动,存储上传中断,数据库更新永远不会发生,等等)。如果数据库信息未更新,则其他用户不会收到通知,即音频文件处于联机状态,并且他们无法获得存储在数据库中的引用它的路径。
在新的Google Firebase中构建同步存储和数据库上传的正确顺序是什么?
谢谢, 安迪
答案 0 :(得分:2)
不确定为什么还没有可靠的答案。无论如何,我遇到了非常类似的问题,并最终使用完成块使用嵌套更新(正如您在问题中描述的那样)。
最近,Firebase引入了云功能。我正在利用它来观察上传的文件,然后使用云功能在FB数据库中创建元数据条目。
基本上,我使用childByAutoId()生成一个用于命名文件的密钥。例如,个人资料照片保存在“gs:// bucket-id / profile_pictures / somerandomkey .jpeg”中。然后,我使用文件名中的密钥,使用云函数在我的FB数据库中创建元数据条目。
我不确定是否有更好的方法,但使用云功能肯定似乎是比嵌套更新方法更好的方法。
答案 1 :(得分:0)
您可以使用Firebase存储上传图片,但您可以获得该图片的可下载网址。然后将所有值放在自定义对象中,包括该图像URL,并将该对象保存在Firebase的RealTime数据库中。 您可以通过从RealTime数据库中检索对象来使用图像URL。