我正在开发一个带有firebase 3,ionic2和Angular2的移动应用程序。 我们将不断创建将提供给我们所有订阅用户的新音频文件,即音频文件不是用户特定的。音频文件以模块形式提供,并且相继提供。换句话说,订阅用户只有在收听该模块中的所有先前文件时才能收听模块中的下一个文件。
Firebase托管似乎并不能用于此目的,因为我的理解是,每当我们添加新音频时,我们都必须将所有以前和新的音频文件作为内容上传整个网站。这将是非常乏味的,而不是一个可行的解决方案。 我错了这个假设吗?我还没有看到任何用于托管或ftp访问的增量上传。
作为替代方案,我现在正在考虑使用firebase存储来托管我们的音频文件。但是,在这种情况下,我不确定如何保护存储。由于我的api密钥必须在源代码(js或html文件)中公开,在我看来,每个具有一点js知识的订阅用户都可以访问托管我们音频文件的文件夹,然后只需下载它们。
在托管它们的情况下,我将能够散列文件名并将它们存储在数据库中,从而控制对它们的访问。 但是,使用看起来不可能的存储选项,因为人们可以只下载文件夹中的所有文件,从而下载整个模块。
最好的方法是什么?
答案 0 :(得分:0)
这完全取决于您如何在Firebase中存储这些音频文件。避免以base64格式存储文件,并利用Firebase Storage。
强烈建议使用 -
将图像上传到s3并使用数组逐步将哈希保存在firebase中 -
var messages = $ FirebaseArray(ref);
//将新记录添加到列表中 消息。$添加({ 用户:" physicsmarie", 文字:" Hello world" });
//从列表中删除一个项目 消息$删除(someRecordKey);
//更改消息并保存 var item = messages。$ getRecord(someRecordKey); item.user =" alanisawesome&#34 ;; 消息。$ save(item).then(function(){ //数据已保存到我们的数据库中 });