多个Firebases实例

我尝试制作多个new Firebase(url);时遇到问题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();调用callback函数v1.auth(); 它忽略它,它看起来像被v2.auth();覆盖v2.auth(); 即使它们是不同的Firebases实例,并且干扰了其他一切,例如v1.child("path").on("value",function(snapshot){});v2.child("path").on("value",function(snapshot){}); 在这种情况下不起作用。

您只能在使用Firebase身份validation的单个页面中进行身份validation。

从Firebase文档中的此页面 :

所有对Firebase的引用都具有相同的身份validation状态。 因此,如果您调用两次新的Firebase()并在其中一个上调用auth(),则它们都将被authentication。

当然,这可能是nest-api身份validation工作不同,但我怀疑它。

更新

您提供了Firebase文档中其他页面的引用:

即使我们在不同的Firebase引用上调用.auth,也无法同时使用多个凭据对同一Firebase进行身份validation。 身份validation状态是全局性的,适用于所有对Firebase的引用。 但是,可以创build对两个或更多不同Firebase的引用,并对这些独立进行身份validation。

但是,在您的代码中,两个连接都是相同的Firebase: https : //developer-api.nest.com 。 一个Firebase =>一个身份validation状态。

您可以使用新的Firebase.Context()作为第二个参数来创build多个实例!

  var token1 = "c.AdASdsAsds..."; var token2 = "c.dkasdEddss..."; var v1 = new Firebase('https://developer-api.nest.com', new Firebase.Context()); 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', new Firebase.Context()); v2.auth(token2,function(err){ console.log("Connected 2 "+err); },function(err){ console.log("Cancel 2 "+err); });