Reactjs 如何将Cloud Firestore与React Native和Redux一起使用?
我是React Native的新手,尝试学习使用Cloud Firestore 基本上,当您想在React Native和Firebase中结合使用云Firestore和身份验证时,我还没有弄清楚要遵循的整个路线图 我已成功将Firebase身份验证添加到我的应用程序中 数据是用户创建的位置列表。我将其存储在Redux store中,并在屏幕上生成一个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 现在的问题是如何将用户制作的每个列表存储到云上? 就像用户再次登录时一样,他/她可以看到他/她创建的数据。 我们还需要保存数据吗
FlatList
现在的问题是如何将用户制作的每个列表存储到云上?
就像用户再次登录时一样,他/她可以看到他/她创建的数据。
我们还需要保存数据吗
我想学习一些文章,或者整个过程的一般说明(不需要代码),比如步骤1或者我们需要列出的应用程序的要求、状态等。。因此,我可以亲自动手计算它云Firestore的功能非常有用
在云上存储东西Firestore非常简单。例如,如果您写了以下内容:
const doc=wait firebase
.firestore()
.collection('bucketName')
.doc(“docId”)
.get()
.data()
您可以从bucketbucketName
获取id为docId
的文档。如果该文档和/或bucket不存在,则只是未定义
相反,如果你写:
const docId=wait firebase
.firestore()
.collection('bucketName')
.添加({
姓名:“马可”,
出生日期:1993年
})
您将获得新文档的iddocId
,该文档已添加到包含对象{…}
的集合bucketName
不需要任何模式。如果将文档添加到不存在的bucket中,Firebase将创建该bucket,然后将文档添加到其中
从React Native,您需要触发一个函数和调用,例如,我上面提供的代码。使用返回的值,您可以使用redux,将数据保存到存储中,并在应用程序中使用它们。云Firestore的功能非常有用 在云上存储东西Firestore非常简单。例如,如果您写了以下内容:
const doc=wait firebase
.firestore()
.collection('bucketName')
.doc(“docId”)
.get()
.data()
您可以从bucketbucketName
获取id为docId
的文档。如果该文档和/或bucket不存在,则只是未定义
相反,如果你写:
const docId=wait firebase
.firestore()
.collection('bucketName')
.添加({
姓名:“马可”,
出生日期:1993年
})
您将获得新文档的iddocId
,该文档已添加到包含对象{…}
的集合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
。