我正在运行以下查询,但它没有返回任何结果。但是,如果我将child_added更改为.on("value")
,则会返回正确的结果。我似乎随时.equalTo
使用orderByChild
和equalTo
它不会返回结果。
orderByChild("column").equalTo("value").on("child_added")
问题的实际原因似乎是:
function handleResult(vError, aData) {
console.log("auth with token successfully");
}
ref.authWithCustomToken(Token, handleResult);
ref.authWithCustomToken(Token, handleResult);
ref.authWithCustomToken(Token, handleResult);
这只会登录到控制台一次。 确保在使用新Firebase时使用相同的网址。
答案 0 :(得分:0)
我能够找到答案,按照https://www.firebase.com/docs/web/api/firebase/authwithcustomtoken.html和其他auth senarious提到的那种方式找到答案:
对同一数据库的所有Firebase引用都具有相同的身份验证状态,因此如果您两次调用新的Firebase(“https://.firebaseio.com/”)并在其中一个上调用任何身份验证方法,则它们都将通过身份验证强>
这样做的问题是,如果你多次执行authWithCustomToken传递一个回调,它只会执行最后一次调用的回调。因此,如果您的代码期望为所有authWithCustomToken调用执行回调函数,那么此时您将失败。
我的解决方案是首先调用reg.getAuth()并根据返回值运行authWithCustomToken或者只是用成功值执行我的回调。
对于firebase团队,我建议执行传递给authWithCustomToken的回调,即使用户多次调用它,否则,它需要更多代码,变得更复杂并且会欺骗许多用户。接下来,我将使用更多信息更新您的知识库,以便用户不会遇到此问题。