如果我错了,请纠正我,但身份验证会话有 30 天的最大限制?如果是这种情况,有没有办法让我的服务器节点应用程序监听经过身份验证的 dataRef 永远存在?
干杯,特拉夫。
由于on 方法有一个取消回调,该回调在任何时候权限被撤销(即身份验证过期)时都会被调用,所以这里有一种(未经测试的)处理持久连接的可能性:
var fb = new Firebase(URL_AND_PATH);
fb.auth( TOKEN, restart );
function _childAdded(ss) {
/* do something with data */
}
function _authRevoked() {
fb.unauth();
fb.auth( TOKEN, restart );
};
function restart(error) {
if( error ) { console.error(error); }
else {
fb.on('child_added', _childAdded, _authRevoked );
}
}
除了 Kato 的建议之外,您可以做的是通过传入您的全局 Firebase 密码进行身份验证(在 Forge -> Auth -> Firebase Secrets -> “Show”中可用)。这只能在受信任的环境中使用(例如您的后端服务器),因此请确保不要通过将其签入源代码控制、将其传递给您的客户端代码/最终用户等来泄漏它。这只会“ expire”,如果秘密被撤销。