多个Firebases实例

Car*_*s C 6 authentication node.js firebase nest-api

当我尝试制作多个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); });
Run Code Online (Sandbox Code Playgroud)

控制台日志:Connected 2 null就是这样......没有了.

因此,这意味着它永远不会调用回调函数从v1.auth();它忽略了它,它看起来像它变成被覆盖v2.auth();,即使它们是不同的火力点的情况下,它会干扰其他的一切,例如,v1.child("path").on("value",function(snapshot){});并且v2.child("path").on("value",function(snapshot){});发生这种情况时将无法正常工作.

Fra*_*len 8

您只能在使用Firebase身份验证的单个页面中进行一次身份验证.

Firebase文档中的此页面:

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

当然,nest-api身份验证的工作方式可能不同,但我对此表示怀疑.

更新

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

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

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