我有一个只有两个用户的聊天,将两个用户的id放在一个字段中(使其成为一个新的id)。我需要获取第二个Id并在列表中显示字母。如何获得连字符后面的id的第二部分?
{
"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和第二部分,但这样每次循环时都会生成多个数组,并创建一些空对象。
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
});
});
}发布于 2020-06-21 06:42:13
试试这样的东西
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
});
});
}发布于 2020-06-21 08:04:29
要在chat下显示每个键的第二部分,使用value事件可能更容易:
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
});
});https://stackoverflow.com/questions/62490704
复制相似问题