首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获取同一字段中两个用户Id中的第二个用户id

如何获取同一字段中两个用户Id中的第二个用户id
EN

Stack Overflow用户
提问于 2020-06-21 03:30:40
回答 2查看 83关注 0票数 0

我有一个只有两个用户的聊天,将两个用户的id放在一个字段中(使其成为一个新的id)。我需要获取第二个Id并在列表中显示字母。如何获得连字符后面的id的第二部分?

代码语言:javascript
运行
复制
{
  "chat" : {
    "st98ySAm5CNeq2WVDTCAQJ3ZcpP2-2C95b9MJprgpCITMXknPuXS52mR2" : {
      "-M9Qk0mmv-r2C0kaFqpn" : {
        "_id" : 1591750954541,
        "createdAt" : 1591750954541,
        "order" : -1591750954541,
        "text" : "Hello there",
        "uid" : "2C95b9MJprgpCITMXknPuXS52mR2"
      },
      "-M9QkBv-rl18Nc4OyfpV" : {
        "_id" : 1591751000122,
        "createdAt" : 1591751000122,
        "order" : -1591751000122,
        "text" : "Hello",
        "uid" : "st98ySAm5CNeq2WVDTCAQJ3ZcpP2"
      }
    },
    "st98ySAm5CNeq2WVDTCAQJ3ZcpP2-heGJLHnvwMgofczT9PHSlRwANCB2" : {
      "-M9_eYajRuO0RjGDJHSM" : {
        "_id" : 1591917295564,
        "createdAt" : 1591917295564,
        "order" : -1591917295564,
        "text" : "Mmmm",
        "uid" : "heGJLHnvwMgofczT9PHSlRwANCB2"
      },
      "-M9_efDQ1qHUrLMndU2o" : {
        "_id" : 1591917327330,
        "createdAt" : 1591917327330,
        "order" : -1591917327330,
        "text" : "How are you BIG MAN",
        "uid" : "st98ySAm5CNeq2WVDTCAQJ3ZcpP2"
      }
    },
    "yKaXQZCbn8RdxO96tsbf9ZQHK3g1-2C95b9MJprgpCITMXknPuXS52mR2" : {
      "-M9QUli8eRb7gEEwgIM8" : {
        "_id" : 1591746694381,
        "createdAt" : 1591746694381,
        "order" : -1591746694381,
        "text" : "Hello",
        "uid" : "2C95b9MJprgpCITMXknPuXS52mR2"
      },
      "-M9Qji3QtqOKYrRZV7Wg" : {
        "_id" : 1591750873750,
        "createdAt" : 1591750873750,
        "order" : -1591750873750,
        "text" : "Hi bro",
        "uid" : "yKaXQZCbn8RdxO96tsbf9ZQHK3g1"
      },
      "-M9QjwXH4diBq0mj_aPz" : {
        "_id" : 1591750933005,
        "createdAt" : 1591750933005,
        "order" : -1591750933005,
        "text" : "Hi how are you",
        "uid" : "2C95b9MJprgpCITMXknPuXS52mR2"
      }
    }
  }
}

我将id拆分为to和第二部分,但这样每次循环时都会生成多个数组,并创建一些空对象。

代码语言:javascript
运行
复制
componentDidMount() {
    firebase
      .database()
      .ref()
      .child("chat")
      .on("child_added", snapshot => {
          const anotherUsers = [];
          let array = snapshot.key.split("-");
          let a = array[1];
          anotherUsers.push({
            key: a
          });
          this.setState({
            unknownUser2: anotherUsers
          });
     
      });
}
EN

回答 2

Stack Overflow用户

发布于 2020-06-21 06:42:13

试试这样的东西

代码语言:javascript
运行
复制
componentDidMount() {
    firebase
      .database()
      .ref()
      .child("chat")
      .on("child_added", snapshot => {
          const unknown = [...this.state.unknownUser2];
          let array = snapshot.key.split("-");
          let a = array[1];
          const updated=[...unKnown,{key: a}]
          this.setState({
            unknownUser2: updated
          });
     
      });
}
票数 1
EN

Stack Overflow用户

发布于 2020-06-21 08:04:29

要在chat下显示每个键的第二部分,使用value事件可能更容易:

代码语言:javascript
运行
复制
firebase
  .database()
  .ref()
  .child("chat")
  .on("value", snapshot => {
      const anotherUsers = [];
      snapshot.forEach((child) => {
         const second = child.key.split("-")[1];
         anotherUsers.push({ key: second });
      });
      this.setState({
        unknownUser2: anotherUsers
      });
  });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62490704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档