JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – 在Firebase中建立一个聊天应用程序大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个Firebase数据库构造问题.我的场景接近一个聊天应用程序.以下是具体细节
- users(node storing several users of the app)
  - id1
      name: John
  - id2
      name: Meg
  - id2
      name: Kelly
- messages(node storing messages between two users)
  - message1
      from: id1
      to: id2
      text: ''
  - message2
      from: id3
      to: id1
      text: ''

现在想象一下,为个人用户建立一个会话视图.所以我想要从该特定用户获取所有邮件
并对该特定用户

我现在写如下:

let fromMessagesRef = firebase.database().ref('messages').orderByChild('from').equalTo(firebase.auth().currentUser.uid)
fromMessagesRef.once("value").then((snapshot) => {/* do something here*/})

let toMessagesRef = firebase.database().ref('messages').orderByChild('to').equalTo(firebase.auth().currentUser.uid)
toMessagesRef.once("value").then((snapshot) => {/* do something here*/})

问题:

这是模拟问题的正确方法吗?
>如果是,是否有办法组合上述2个查询?

解决方法

我会存储这样的数据:
- users(node storing several users of the app)
  - id1
      name: John
      messages
        message1: true
        message2: true
  - id2
      name: Meg
      messages
        message1: true
        message3: true
  - id3
      name: Kelly
      messages
        message2: true
        message3:true
- messages(node storing messages between two users)
  - message1
      from: id1
      to: id2
      text: ''
  - message2
      from: id3
      to: id1
      text: ''
  - message3
      from: id2
      to: id3
      text: ''

Firebase推荐存储这样的东西.所以在你的情况下你的查询是

let fromMessagesRef = firebase.database().child('users').child(firebase.auth().currentUser.uid).child('messages')

这样可以使它非常快,因为没有顺序完成.然后,您将循环每个消息,并从消息节点获取其配置文件.

大佬总结

以上是大佬教程为你收集整理的javascript – 在Firebase中建立一个聊天应用程序全部内容,希望文章能够帮你解决javascript – 在Firebase中建立一个聊天应用程序所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: