我知道这是一个非常简单的问题,但我不知道为什么不和我一起工作!
我要声明一个数组,从服务器获取数据后,将它们推入这些空数组中,当我记录它们时,我可以看到这样的数据
我正在使用Loadash获取唯一的obj,为什么不为我工作?
这是我的功能
_uniqUser= () => {
let currentUser = firebase.auth().currentUser.uid;
let ref = firebase.database().ref(`users/${currentUser}`);
let providersKeys = [];
ref.once("value").then(snapshot => {
snapshot.forEach(childsnap => {
providersKeys.push(childsnap.key);
});
let providers = [];
providersKeys.forEach(key => {
firebase
.database()
.ref("providers")
.child(key)
.once("value")
.then(providersShot => {
let username = providersShot.val().username;
providers.push({ username: username, key: key });
});
});
let uniq = _.uniqBy(providers,"key")
console.log(uniq); // I got Empty array
console.log(typeof providers); // I got Object!!
this.setState({ providers:uniq, noChat: false });
// this.setState({ providers, noChat: false },()=>console.log(this.state.providers)) // I see the above image!
});
};