【发布时间】:2021-08-13 17:57:36
【问题描述】:
在继续执行其余代码之前,有人可以提供一些有关在 Firestore 集合中获取特定项目的指导吗?我想在遍历评论集合之前获取用户集合中的用户项目,据我所知,这最好通过使用 async/await 来实现,但是在我看到堆栈溢出和其他地方的任何地方,他们使用 setups/ 来实现它语法与我一直使用的完全不同。
这是我得到的:
import React, { useState, useEffect } from "react";
import { Image, Text, TextInput, TouchableOpacity, View } from "react-native";
import styles from "./model/AccountStyles.js";
import { KeyboardAwareScrollView } from "react-native-keyboard-aware-scroll-view";
import { firebase } from "../firebase/config";
export default function AccountScreen({navigation }) {
const [existingReviewsArray, setExistingReviewsArray] = useState([]);
useEffect(() => {
let userID;
//get userID
firebase.auth().onAuthStateChanged((user) => {
const usersRef = firebase.firestore().collection("users");
usersRef
.doc(user.uid)
.get()
.then((document) => {
const data = document.data();
userID = data.id
});
});
//get reviews made by userID to useState
var addToReviewsArray = [];
const reviewsRef = firebase.firestore().collection('reviews');
reviewsRef.get().then((querySnapshot) => {
querySnapshot.forEach(snapshot => {
if (snapshot.data().userID == userID){
var existingReview = snapshot.data();
addToReviewsArray = ([...addToReviewsArray , existingReview]);
}
}
)
setExistingReviewsArray(addToReviewsArray);
});
}, []);
解决此问题的最佳方法是什么?在此不胜感激。
【问题讨论】:
标签: reactjs firebase react-native