2014-09-12 52 views
1

如何使用Firebase的简单登录来允许用户上传音乐文件。连接Firebase简单登录和外部服务器

据我所知,甚至考虑将音频文件存储在Firebase的数据库中是没有意义的,这就是为什么我想能够将它们存储在外部PHP服务器上的原因。

因此,问题在于我是否可以使用Firebase的简单登录系统来允许用户向外部服务器进行身份验证。

我见过Using NodeJs with Firebase - Security ......这给了一些很好的见解,但是如何让大文件上传到外部服务器呢?

回答

3

来自answer you linked的技术也适用于您的情况,您只需将其转换为PHP和Firebase REST APIs即可。另外,由于REST API不是实时的,你必须添加一些可以轮询的任务队列。与Simple Login

  • 用户写

    1. 用户登录到火力地堡只有他们能够(基于security rules)的地方:

      你的程序会流这样的事情。用户还将条目写入任务队列。

    2. 您的PHP服务器连接一个令牌,允许读取所有用户的秘密地点。
    3. 您的PHP服务器每隔一段时间轮询一次firebase以查找新任务。如果有新任务,它会验证用户并允许该用户向其发布数据。

    所有这些都说了,这将会非常复杂。 PHP的执行模式并不太适合于实时系统,并

    我强烈建议你考虑一些其他的选择:

    • 您使用的云平台,火力地堡,为您实时的东西,所以考虑为您的二进制文件云服务,如filepicker.io
    • 如果你真的想自己托管文件,使用更实时的东西像node.js.它会为您节省构建该任务队列的工作量。
  • +0

    感谢您的回复,但我仍然感到困惑。用户何时/何时实际提交音乐文件以及安全规则如何影响用户与远程服务器上的音乐进行交互? ...总之,外部服务如何接收音乐文件? – Joseph 2014-09-12 18:52:34

    +0

    我的一些混淆是,在firebase上你没有服务器端代码。因此,为了提供服务器端代码,您需要另一台服务器与其进行交互,从而提供有关想要了解外部服务器如何知道用户已通过身份验证的部分。假设你按照给出的答案行事......当你等待外部服务器连接时,音乐文件将存储在何处?在该示例中,电子邮件的信息存储在Firebase数据库中,但是,如果我理解正确,则不适用于音频文件。 – Joseph 2014-09-12 18:58:21

    +0

    那么,您可以通过编码将二进制内容直接存储到Firebase中。这不是真的为它设计的,但它确实有效。你可以在这里了解更多有关这方面的信息:http://stackoverflow.com/questions/13955813/how-can-i-view-and-store-images-in-firebase除此之外,它归结为你想要保护哪部分:写或读。如果只是读取,您可以允许任何人编写然后将不可猜测的CDN网址安全地存储在您的Firebase中。为了保护写入,它变得更复杂一些,取决于提供者。 – mimming 2014-09-12 20:02:34