我正在从Firebase Cloud Firestore数据库中检索数据,并尝试将其放入一个空的全局范围数组中。但是,它们没有被推入,控制台中也没有任何错误。
我尝试添加一些固定对象,这些对象的字段与要插入的对象的字段完全相同,以防对象字段在数组初始化时很重要,但这无济于事。
import React, { Component } from 'react';
import firebase from './firebase/firebase.js';
var list = [
{
author: 'bob123',
name: 'Bob Smith',
title: 'Bobbie',
},
{
author: 'appleorange',
name: 'Laura Hills',
title: 'Time Flies Past'
}
]
export class BookList extends Component {
constructor(props) {
super(props);
const db = firebase.firestore();
db.settings({ timestampsInSnapshots: true});
db.collection("books").get().then((querySnapshot) => {
querySnapshot.forEach((item) => {
let string = JSON.parse(JSON.stringify(item.data()));
console.log(string); // successfully prints an object e.g. {author: 'a', name: 'b', title: 'c'}
list.push(string);
});
});
console.log(list); // Only prints the original array of objects with Bob and Laura's entries
}
}
最终的控制台日志应包括新推送的条目,但不包括,这意味着推送失败。我以为可以保留从本地推送到全局变量的更改,但也许我在这里缺少有关JavaScript或编译方式的信息...非常感谢您的帮助或说明!