Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何将Cloud Firestore与React Native和Redux一起使用?_Reactjs_Firebase_React Native_Redux_Google Cloud Firestore - Fatal编程技术网

Reactjs 如何将Cloud Firestore与React Native和Redux一起使用?

Reactjs 如何将Cloud Firestore与React Native和Redux一起使用?,reactjs,firebase,react-native,redux,google-cloud-firestore,Reactjs,Firebase,React Native,Redux,Google Cloud Firestore,我是React Native的新手,尝试学习使用Cloud Firestore 基本上,当您想在React Native和Firebase中结合使用云Firestore和身份验证时,我还没有弄清楚要遵循的整个路线图 我已成功将Firebase身份验证添加到我的应用程序中 数据是用户创建的位置列表。我将其存储在Redux store中,并在屏幕上生成一个FlatList 现在的问题是如何将用户制作的每个列表存储到云上? 就像用户再次登录时一样,他/她可以看到他/她创建的数据。 我们还需要保存数据吗

我是React Native的新手,尝试学习使用Cloud Firestore

基本上,当您想在React Native和Firebase中结合使用云Firestore和身份验证时,我还没有弄清楚要遵循的整个路线图

我已成功将Firebase身份验证添加到我的应用程序中

数据是用户创建的位置列表。我将其存储在Redux store中,并在屏幕上生成一个
FlatList

现在的问题是如何将用户制作的每个列表存储到云上? 就像用户再次登录时一样,他/她可以看到他/她创建的数据。 我们还需要保存数据吗

我想学习一些文章,或者整个过程的一般说明(不需要代码),比如步骤1或者我们需要列出的应用程序的要求、状态等。。因此,我可以亲自动手计算它

云Firestore的功能非常有用

在云上存储东西Firestore非常简单。例如,如果您写了以下内容:

const doc=wait firebase
.firestore()
.collection('bucketName')
.doc(“docId”)
.get()
.data()
您可以从bucket
bucketName
获取id为
docId
的文档。如果该文档和/或bucket不存在,则只是未定义


相反,如果你写:

const docId=wait firebase
.firestore()
.collection('bucketName')
.添加({
姓名:“马可”,
出生日期:1993年
})
您将获得新文档的id
docId
,该文档已添加到包含对象
{…}
的集合
bucketName


不需要任何模式。如果将文档添加到不存在的bucket中,Firebase将创建该bucket,然后将文档添加到其中


从React Native,您需要触发一个函数和调用,例如,我上面提供的代码。使用返回的值,您可以使用redux,将数据保存到存储中,并在应用程序中使用它们。

云Firestore的功能非常有用

在云上存储东西Firestore非常简单。例如,如果您写了以下内容:

const doc=wait firebase
.firestore()
.collection('bucketName')
.doc(“docId”)
.get()
.data()
您可以从bucket
bucketName
获取id为
docId
的文档。如果该文档和/或bucket不存在,则只是未定义


相反,如果你写:

const docId=wait firebase
.firestore()
.collection('bucketName')
.添加({
姓名:“马可”,
出生日期:1993年
})
您将获得新文档的id
docId
,该文档已添加到包含对象
{…}
的集合
bucketName


不需要任何模式。如果将文档添加到不存在的bucket中,Firebase将创建该bucket,然后将文档添加到其中



从React Native,您需要触发一个函数和调用,例如,我上面提供的代码。使用返回的值,您可以使用redux,将数据保存到存储中,并在应用程序中使用它们。

-如果我在redux reducer中这样做,它是否会得到优化和正确?就像在发送操作的同时将数据发送到Firestore一样(操作文件包括数据发送功能)-另外,我们应该保留该数据,还是每次用户想要查看数据时我们都会从Firestore请求?@Marwin您需要在函数中这样做,并仅使用返回的数据发送reducer操作,这样:
dispatch({type:SET\u DATA,DATA:doc})
。在刷新应用程序之前,应用程序中的数据都是可用的。如果您希望数据在刷新后保持不变(且无需再次调用操作),则需要使用
AsyncStorage
redux persist
。非常感谢Marco。如果你不介意的话,还有一个问题:我们如何将发送到云端的数据附加到经过身份验证的用户身上?就像用户登录时,他/她可以看到他/她创建的数据一样?@Marwin有很多方法可以做到这一点。例如,您可以使用用户的
uid
将属性
userId
添加到文档
。添加({name:“Marco”,born:“1993”,userId:…})
-如果我在Redux reducer中这样做,它是否会得到优化和正确?就像在发送操作的同时将数据发送到Firestore一样(操作文件包括数据发送功能)-另外,我们应该保留该数据,还是每次用户想要查看数据时我们都会从Firestore请求?@Marwin您需要在函数中这样做,并仅使用返回的数据发送reducer操作,这样:
dispatch({type:SET\u DATA,DATA:doc})
。在刷新应用程序之前,应用程序中的数据都是可用的。如果您希望数据在刷新后保持不变(且无需再次调用操作),则需要使用
AsyncStorage
redux persist
。非常感谢Marco。如果你不介意的话,还有一个问题:我们如何将发送到云端的数据附加到经过身份验证的用户身上?就像用户登录时,他/她可以看到他/她创建的数据一样?@Marwin有很多方法可以做到这一点。例如,您可以使用用户的
uid
向文档
添加属性
userId