我是React Native的新手,我正在尝试将第一个查询的数据数组返回到设备屏幕,在那里我可以设置设备。我使用.get()和.then()进行了此工作,但我没有得到更新的事件,所以我已经移动到onSnapshot,似乎在查询端有数据,但无法在屏幕上获得此集合。
import React, { useEffect, useRef, useState } from "react";
import { Alert,FlatList,RefreshControl,StatusBar,Text,View } from "react-native";
import { TouchableOpacity } from "react-native-gesture-handler";
import styles from "./styles";
import { getDevices } from "../../services/devices";
import { useNavigation } from "@react-navigation/native";
import { Feather } from "@expo/vector-icons";
import CircularProgress from "react-native-circular-progress-indicator";
import { removeDevice } from "../../redux/actions";
import { useDispatch } from "react-redux";
import firebase from "firebase/app";
import "firebase/firestore";
const wait = (timeout) => {
return new Promise((resolve) => setTimeout(resolve, timeout));
};
export default function DevicesScreen() {
const [devices, setDevices] = useState([]);
const [loading, setLoading] = useState(false);
const componentMounted = useRef(true);
const navigation = useNavigation();
useEffect(() => {
getDevices().then(setDevices)
},[]);
console.log()
TypeError: undefined is not an object (evaluating '(0, _devices.getDevices)().then')
This error is located at:
in DevicesScreen (created by SceneView)
出现此错误。如果我删除.then(setDevices),我可以在console.log上看到数据数组
import firebase from "firebase/app";
import "firebase/firestore";
export const getDevices = () => {
firebase
.firestore()
.collection("device")
.where("user_id", "==", "Rweeff9MO8XIDheZLx0HVbfaezy2")
.get()
.then((querySnapshot) => {
querySnapshot.docs.map(doc => {
let data =doc.data();
console.log(data);
return { id, ...doc };
}
)}
)
}
谢谢
代码中有几个问题。
未定义 id
。你需要做 doc.id
。因此,下面的步骤可以做到这一点:
export const getDevices = () => {
return admin // <========= See the return here
.firestore()
.collection("projects")
.get()
.then((querySnapshot) => {
return querySnapshot.docs.map(doc => ({ id: doc.id, ...doc.data() }));
// ^^^ See the return here
});
}
我正在从事一项与react基于本机应用程序的用户管理相关的任务。在他们成功注册为用户后,我添加了一个存储布尔值的数据,并将其命名为emailVerifiedAccount(如果他们成功注册,这是存储的数据,如果他们单击发送给他们的电子邮件验证链接,则表明他们是否为验证用户)。在登录屏幕中,我想检查我在onAuthStateChanged中从firestore获得的布尔值,并且仅当我获得的email
问题内容: 我有以下代码: 返回的错误是:ImportError:没有名为JSONEncoder的模块 问题答案: 使用Flask的内置函数,因为它已经扩展为可以使用日期: 数据将通过一个data包含行数组的单键()作为对象返回(根据行返回的形式将其表示为数组或对象)。 如果需要序列化更多类型(例如,要返回而不是实例),则需要用J知道如何处理类型的子类覆盖Flask的属性: 然后可以在Flask实
问题内容: 我正在尝试使用value从数据库中获取汽车。我尝试调用值为52 的方法,并检查数据库中是否存在值为52 的汽车。为什么不退还给我? 问题答案: 打电话一次,不要两次。您前进到结果的第一行,然后前进到第二行。由于查询未返回两行,因此不会获得第二行。您跳过了想要的行。
问题内容: 我想知道以下内容: 如何从数据库中的多个表中获取数据? 有哪些类型的方法可以做到这一点? 什么是联接和工会,它们之间有何不同? 什么时候应该使用每个与其他比较? 我打算在我的应用程序(例如,PHP)中使用此功能,但是不想对数据库运行多个查询,我需要在单个查询中从多个表中获取数据的哪些选项? 注意:我正在写这篇文章是因为我希望能够链接到有关我在PHP队列中不断遇到的众多问题的书面指南,因
我刚刚开始学习平均堆栈,我被卡住了。我需要将下面的查询数据发送到前端。 我试过这样做,但没有成功
问题内容: 我正在使用ajax发布一些数据。我想处理该数据并返回到调用jQuery脚本。 这是我的jQuery: 这是我在服务器上的somescript.php: 我在服务器端是否正确执行此操作?ajax调用完成后如何访问返回字符串? 问题答案: 我想到了。需要在PHP中使用echo而不是return。 和jQ: