当我尝试制作多个时遇到问题new Firebase(url);
实例。
例如:
var token1 = "c.AdASdsAsds...";
var token2 = "c.dkasdEddss...";
var v1 = new Firebase('https://developer-api.nest.com');
v1.auth(token1,function(err){
console.log("Connected 1 "+err);
},function(err){ console.log("Cancel 1: "+err); });
var v2 = new Firebase('https://developer-api.nest.com');
v2.auth(token2,function(err){
console.log("Connected 2 "+err);
},function(err){ console.log("Cancel 2 "+err); });
控制台日志:Connected 2 null
就这样......不再了。
所以,这意味着它永远不会调用回调函数v1.auth();
它忽略它,看起来它被覆盖了v2.auth();
即使它们是不同的 Firebase 实例,并且它会干扰其他一切,例如v1.child("path").on("value",function(snapshot){});
and v2.child("path").on("value",function(snapshot){});
发生这种情况时将不起作用。
您只能在使用 Firebase 身份验证的单个页面中进行一次身份验证。
From Firebase 文档中的此页面:
对 Firebase 的所有引用都共享相同的身份验证状态。因此,如果您两次调用 new Firebase() 并对其中之一调用 auth(),它们都将通过身份验证。
当然,nest-api 身份验证的工作方式可能有所不同,但我对此表示怀疑。
Update
您提供的报价来自Firebase 文档中的另一页:
即使我们在不同的 Firebase 引用上调用 .auth,也不可能同时使用多个凭据对同一 Firebase 进行身份验证。身份验证状态是全局的,适用于对 Firebase 的所有引用。但是,可以创建对两个或多个不同 Firebase 的引用并独立地对它们进行身份验证。
但在您的代码中,两个连接都连接到同一个 Firebase:https://developer-api.nest.com。一个 Firebase => 一种身份验证状态。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)