我是一位年轻的女性开发人员,但目前我正在为我们公司的大客户建立项目,
我有一个问题,实际上你们当中的一个人可能会引导我朝正确的方向前进:
我有一个firebase帐户和一个带有应用程序内购买的应用程序-事情是在应用程序内购买实际上将包含我想存储在firebase服务器上并下载uppon购买的视频!有人可以引导我朝着正确的方向介绍如何以最简单的方式实现这一目标吗?
附言:我知道我是菜鸟,但我真的不想在下个月的会议上看起来像个白痴; )拉娜,热烈问候
答案 0 :(得分:0)
坦率地说,没有简单的方法可以通过Firebase云存储为特定的用户组保护文件/文件夹。您可以通过更改文件夹元数据或使用自定义标记来进行检查,但随后需要一台用于该服务器的服务器...
如果您希望保留在仅支持Firebase的环境中,最简单的方法可能是将受保护的视频托管在所有客户端的受保护文件夹中。当用户购买视频时,然后按照以下要求发送CloudFunction请求。
userClaimsToHaveBoughtAccessToVideo(userId, sku, token, videoId){
// 1. use the googlePlay billing API to verify that the user did indeed purchase the item
// 2. if they did, then store that in read-only node of the database like: /purchasedVideos/userId/videoID/
}
然后,如果用户要下载视频,请按照...创建功能。
userWantsToDownloadAVideo(userId, videoId){
// check the database to see if the user has the video
// if they do, copy the video file to a folder like /userId/videos/...
}
然后,视频将出现在易于设置安全规则的个人文件夹中。
当用户将视频下载到他们的设备上时,会按照以下方式向函数发送呼叫。
userDownloadedVideo(userId, videoId){
// delete video from the user's folder, to save space
}
另一种选择是将视频完全托管在另一个平台上,该平台具有API并允许对其文件进行密码保护。 (然后,在将IAP验证后,将访问密码简单地存储在数据库中,仅供用户读取),以便他们可以使用其他API下载视频。为了安全起见,您可能需要进行每天重新生成密码并更新数据库的日常工作。