热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在Firebase中进行OR查询

如何解决《在Firebase中进行OR查询》经验,为你挑选了1个好方法。

我正在尝试构建一个消息系统.我计划收集消息,然后根据发送者和接收者查询消息.为了做到这一点,我需要查询例子:Bob发送并由Tony收到的所有消息以及由Tony发送并由Bob接收的所有消息.我不太清楚如何做这个"或"陈述.截至目前我有

MessageRef.once('value', function(dataSnapshot) { console.log(dataSnapshot.val()); });

返回所有消息.然后我可以做一个forEach但看起来效率不高.你们有什么建议吗?

此外,你有没有想过我的模型,以建立消息系统是好的与例如聊天室.

谢谢



1> Frank van Pu..:

Firebase目前只能查询单个子属性.因此,如果要查询多个属性,则必须将它们合并为一个:

Messages
  -DFHJ3498ua
    from: Tony
    to: Bob
    from_to: Tony_Bob
    message: "Hello Bob, this is Tony"
  -DFHJ3598uz
    from: Bob
    to: Tony
    from_to: Bob_Tony
    message: "Hello Tony, What can I do for you?"
  -EFHJ3498ua
    from: Tony
    to: Bob
    from_to: Tony_Bob
    message: "Can you help me with this Firebase query?"

然后,您可以使用以下方法查询从Bob到Tony的消息:

var ref = new Firebase('https://your.firebaseio.com/Messages');
var query = ref.orderByChild('from_to').equalTo('Bob_Tony');
query.on('value', function(snapshot) {
  console.log(snapshot.val()); // all messages from Bob to Tony
});

在类似聊天的应用程序中,您可能需要考虑实际使用发送方 - 接收方对作为密钥:

Messages
  from_Bob_to_Tony
    -DFHJ3598uz
      from: Bob
      to: Tony
      message: "Hello Tony, What can I do for you?"
  from_Tony_to_Bob
    -DFHJ3498ua
      from: Tony
      to: Bob
      message: "Hello Bob, this is Tony"
    -EFHJ3498ua
      from: Tony
      to: Bob
      message: "Can you help me with this Firebase query?"

使用此数据结构,您不必运行查询来获取相关消息,但可以进行直接查找.

var ref = new Firebase('https://your.firebaseio.com/Messages');
var query = ref.child('from_Bob_to_Tony');
query.on('value', function(snapshot) {
  console.log(snapshot.val()); // all messages from Bob to Tony
});


推荐阅读
author-avatar
KenNaNa
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有