我正在将音频文件(作为Blob)上传到Firebase,并且每个文件都具有附加的元数据。元数据包含已审核的自定义值,该值可以为true或false。我想使用list()firebase函数显示上述文件,但我只希望显示已审阅过的文件:false。我该怎么办?
根据我的阅读,您可以对child()中的值进行排序/操作,但是我不完全了解该怎么做;除了使用元数据,还可以向孩子添加reviewed:false部分吗?据我所知,这是音频文件,因此无法完成。我还没有任何代码可以显示,因为我不知道从哪里开始,我们将不胜感激!
用于云存储的Firebase SDK仅可以基于路径前缀进行过滤,因此文件位于哪个“目录”中。没有用于过滤元数据的选项。
这意味着您当前有一些选择:
将未审阅的文件存储在其他路径中,以便您可以按路径前缀列出它们。例如,如果将未查看的文件存储在目录/文件夹/位置unreviewed
中,则可以通过firebase.storage().ref().child('unreviewed').list()...
这意味着您必须在查看文件后将其移动到其他位置。由于移动文件不是Firebase API中的一项操作,因此您要么必须重新上传文件(这也允许您更新元数据),要么使用Cloud /服务器端API来移动文件。 >
将有关文件审阅状态的元数据存储在另一个位置,例如Firebase实时数据库或Cloud Firestore。到目前为止,这是最常见的方法,因为您通常可以使用Cloud Storage纯粹用于二进制数据的读取和写入,从而更轻松地存储,更新和查询有关此数据库中文件的元数据。
另请参见我之前提供的answer中的“上一个答案”段落。