Javascript 在firebase数据库中搜索具有特定键值的元素对象
我试图在firebase数据库中使用userkey的特定值进行搜索,但我遇到了以下问题 我想获取,如果我传递了用户密钥11112,那么当我传递11113时,将出现两条记录,然后出现一条记录 尽管我尝试了下面的代码,但还是出现了错误。 firebase脚本:-Javascript 在firebase数据库中搜索具有特定键值的元素对象,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我试图在firebase数据库中使用userkey的特定值进行搜索,但我遇到了以下问题 我想获取,如果我传递了用户密钥11112,那么当我传递11113时,将出现两条记录,然后出现一条记录 尽管我尝试了下面的代码,但还是出现了错误。 firebase脚本:- <script type='text/javascript' src='https://cdn.firebase.com/js/client/1.0.15/firebase.js'></script> 控制台错
<script type='text/javascript' src='https://cdn.firebase.com/js/client/1.0.15/firebase.js'></script>
控制台错误:
Uncaught TypeError: ref.orderBy is not a function
您的错误:
未捕获类型错误:ref.orderBy不是函数
告诉它找不到函数orderBy
,这是因为它不存在
您正在查找orderByChild
var ref = new Firebase('fire-base-url');
ref.orderByChild("userkey").equalTo("11112").once("value", function(snapshot) {
console.log(snapshot.key);
});
参考资料:您的代码有两个问题
orderByChild
而不是orderBy
<script type='text/javascript' src='https://www.gstatic.com/firebasejs/3.1.0/firebase.js'></script>
您可以通过转到控制台,单击应用程序名称并按将Firebase添加到Web应用程序来获取配置详细信息
然后,要获取ref
对象,需要下面的代码
var ref=firebase.database().ref()代码>
看看这个完整的工作示例。抓取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) {
...
}
});
您收到了什么错误?我在控制台收到了错误消息“uncaughttypeerror:ref.orderByChild不是函数”,我正在使用上述firebase.js。这是预防吗?您使用的是非常旧的版本。请尝试使用以下格式:
https://.firebaseio.com/
在新Firebase内部您知道我为什么会出现未捕获错误:Query.equalTo失败:第一个参数在属性“事件”中包含未定义的内容?Firebase警告:使用未指定的索引。考虑在您的安全规则中添加“.Noxon”:“作者”AT /用户,以获得更好的性能。jsfiddle@bhaskarbhatt正如警告信息所说。您可以通过在数据库规则(控制台->数据库->规则)中添加“.indexOn”:“author”
来修复它。我刚刚在我的应用程序中添加了它,您将不会在JSFIDLE中再次看到它。
var config = {
apiKey: "",
authDomain: "",
databaseURL: "",
storageBucket: "",
};
firebase.initializeApp(config);
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) {
...
}
});