Я пытаюсь научиться пользоваться firestore.
В документации google сказано попробовать этот формат:
db.collection("users").get().then((querySnapshot) => {
querySnapshot.forEach((doc) => {
console.log(`${doc.id} => ${doc.data()}`);
});
});
Итак, я использовал это длясделать это (изменив db на fsDB и «users» на «newsletters»
fsDB.collection("newsletters").get().then((querySnapshot) => {
querySnapshot.forEach((doc) => {
console.log(`${doc.id} => ${doc.data()}`);
});
});
При попытке этого я получаю сообщение об ошибке, что querySnapshot не определен. Снимок экрана с сообщением об ошибке прилагается.
Я видел этот пост и попробовал его предложение следующим образом:
fsDB.collection("newsletters").query.get().then(function(querySnapshot) {
if (querySnapshot.empty) {
console.log('no documents found');
} else {
querySnapshot.docs.map(function (documentSnapshot) {
console.log(documentSnapshot.data().name);
});
}
});
Эта попыткагенерирует ошибку синтаксического анализа с помощью оператора if, но я также не могу найти способ ее решить.
Это должно иметь простое решение, но я не могу понять, как получить запись из базы данных.
СЛЕДУЮЩАЯ ПОПЫТКА
Я попытался переместить код над оператором возврата и вставить переменную, как показано на скриншоте, как показано ниже, но все равно выдает ошибки, как показано.то же самое, независимо от того, сохраняю ли я или теряю скобки вокруг querySnapsгорячей.
ДОБАВИТЬ СОСТОЯНИЕ
class Fndate extends React.Component {
state = {
options: [],
anzic: [],
country: [],
region: [],
}
selectCountry (val) {
this.setState({ country: val });
}
selectRegion (val) {
this.setState({ region: val });
}
async componentDidMount() {
// const fsDB = firebase.firestore(); // Don't worry about this line if it comes from your config.
let options = [];
await fsDB.collection("abs_for_codes").get().then(function (querySnapshot) {
querySnapshot.forEach(function(doc) {
console.log(doc.id, ' => ', doc.data());
options.push({
value: doc.data().title.replace(/( )/g, ''),
label: doc.data().title + ' - ABS ' + doc.id
});
});
});
let anzic = [];
await fsDB.collection("anzic_codes").get().then(function (querySnapshot) {
querySnapshot.forEach(function(doc) {
console.log(doc.id, ' => ', doc.data());
anzic.push({
value: doc.data().Title.replace(/( )/g, ''),
label: doc.data().Title + ' - ANZIC ' + doc.id
});
});
});
await fsDB
.collection("newsletter")
.get().then((querySnapshot) => {
querySnapshot.forEach((doc) => {
console.log(`${doc.id} => ${doc.data().email}`);
}
);
});
this.setState({
options,
anzic
});
}
5 ] 5