我正在尝试使用firebase数据库中的userkey搜索特定值,但我遇到了以下问题。
我想要获取,如果我传递用户密钥11112,那么当我通过11113时会有两条记录到来,然后会有一条记录。
即使我尝试使用下面的代码但是收到错误。 firebase脚本: -
<script type='text/javascript' src='https://cdn.firebase.com/js/client/1.0.15/firebase.js'></script>
代码:
var ref = new Firebase('fire-base-url');
ref.orderBy("userkey").equalTo("11112").once("value", function(snapshot) {
console.log(snapshot.key);
});
控制台错误:
Uncaught TypeError: ref.orderBy is not a function
答案 0 :(得分:4)
您的代码存在两个问题。
orderByChild
代替orderBy
。您正在使用旧的firebase SDK。它无法使用new firebase console中创建的应用程序。
请确保使用新的3.1 firebase sdk和
<script type='text/javascript' src='https://www.gstatic.com/firebasejs/3.1.0/firebase.js'></script>
然后您应该使用
初始化您的应用 var config = {
apiKey: "",
authDomain: "",
databaseURL: "",
storageBucket: "",
};
firebase.initializeApp(config);
您可以转到控制台,点击应用程序名称并按Add Firebase to your Web app
来获取配置详细信息。
然后要获取ref
对象,您将需要下面的代码。
var ref = firebase.database().ref();
查看此jsFiddle以查看完整的工作示例。
答案 1 :(得分:2)
您的错误:
未捕获的TypeError:ref.orderBy不是函数
告诉它无法找到函数orderBy
,因为它不存在。
您正在寻找orderByChild
。
var ref = new Firebase('fire-base-url');
ref.orderByChild("userkey").equalTo("11112").once("value", function(snapshot) {
console.log(snapshot.key);
});
答案 2 :(得分:0)
抓取uid值的快照。然后将userkey与您传入的搜索参数进行比较。
var rootRef = new Firebase('fire-base-url');
var userRef = rootRef.child(user.uid);
userRef.on('value', function(snapshot){
var myDbKey = snapshot.child("userkey");
if (mySearchKey === myDbKey) {
...
}
});