从独立的Apple Watch应用程序将媒体上传到Firebase存储

时间:2019-07-25 11:11:14

标签: swift firebase rest firebase-storage watch

除了我们的应用程序外,我正在尝试创建一个仅Apple Watch应用程序。这将是一个独立于基本应用程序的独立应用程序。

我无法使用Firebase SDK或其他Google SDK,因为它们都不支持手表。

我正在尝试使用REST API,但遇到了障碍。

我可以使用identitytoolkit域“ https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=”成功地为用户/密码帐户检索令牌

这给了我一个我要用于端点的令牌:

https://www.googleapis.com/upload/storage/v1/b/mybucketid/o?uploadType=media&name=test233

但是此端点告诉我我未经授权。当我使用从OAuth 2.0游乐场获得的令牌时,它会起作用。

问题是一个人到期了,很明显每次我都无法用新令牌构建应用程序。

您能告诉我我做错了什么吗?我无法在手表上打开网络视图来批准登录,也无法与iPhone通信,因为这是一个独立的应用程序。我需要的仅仅是硬编码的纯代码。这仍然是一个实验,不会向实际用户开放。非过期令牌也适用于我的用例。

我以某种方式更改了我的存储桶策略,即用户应该能够对其进行写入,但是它仍然给我授权问题。

2 个答案:

答案 0 :(得分:0)

我认为您无法使用Firebase身份验证用户通过REST API上传到由Firebase保护的Cloud Storage存储桶。本质上,REST API不知道如何执行Firebase规则,仅接受项目合作者提供的OAuth2令牌附带的操作。

答案 1 :(得分:0)

您可以使用iPhone应用程序进行身份验证并在旧的应用程序过期时从那里获取令牌吗?我知道您正在构建一个独立的手表应用程序,但这也许是一个值得做出的妥协。然后,您可以使用Firebase函数上载图像,验证令牌(admin.auth()。verifyIdToken(token))并将图像推送到Cloud Storage。我尚未尝试使用图像进行此操作,但已通过watchKit应用程序成功将经过身份验证的有效负载提交到Firebase实时数据库REST端点。