在整个应用程序中共享用户和授权参考的有效方式

Effective way to share user and auth reference across the app

我正在使用 Polymer 和 Polymerfire 元素创建一个应用程序,但我找不到在整个应用程序中共享用户和授权引用的有效方法。

我目前接收auth reference的解决方案如下:

var auth = document.getElementById('appID').app.auth()

这种方法可行,但我预感应该有更好的方法。

第二个问题是,我不确定如何在子视图中获取用户引用,通过 属性 共享获取引用会非常麻烦(而且我在使用此 approach).

我认为使用 iron-meta 标签可能会解决问题,但这意味着在每次登录和注销时我都必须设置值 "manually"。那么有没有更直接的分享参考的方式呢?

如果我直接访问 firebase-auth 引用:

document.getElementById('authID').user

然后有一个问题,当它在元素的就绪函数调用中访问时,它总是空的。如果稍后调用它,那么它工作正常但我需要检查用户是否已登录就绪调用(并重定向到登录页面)。

此外,如果全局 Polymer 设置设置为:dom:'shadow'(firebase-auth 不在 index.html 中,而是位于较低的位置,则此方法根本不起作用并且使用此设置我只能访问 index.html 元素。)并且此设置应该在将来默认设置,我希望解决方案是面向未来的。

Jan

如有任何回复,我将不胜感激

聚合物团队打造的聚合物火元素,解决你所有的问题

分为以下几个要素: 火力认证 firebase 应用程序 firebase 文件 火力基地查询 firebase 消息

Video Tutorial Authentication with Firebase -- Polycasts #57

Official Documentation

我解决了这个问题。显然,可以在任何地方初始化 firebase-auth 元素,只要提供应用名称,该元素就会保留应用状态。

<firebase-auth id="auth" app-name=name-of-the-app"></firebase-auth>

比只使用元素参考:

this.$.auth