Flutter 如何为每个现有文档添加一个新字段,只需单击一次即可获得颤振应用程序
我正在开发一个flatter应用程序,在这里我使用streambuilder获取cloudfirestore,效果很好。我还实现了一个管理应用程序来创建更多列表数据。问题是我目前正在添加文档字段标题、图像、地址、描述等,但现在我想添加更多字段,如位置\ url。要添加该字段,我必须转到firebase控制台并手动添加文档字段,这非常痛苦,因为我已经创建了100多个文档。如果我没有将location\u url字段添加到现有文档中,那么客户端应用程序将显示错误。因此,有人请告诉我如何在每个现有文档中添加一个新字段,只需单击一下。我理解你的意思,我也遇到过同样的情况 看,当您向cloud firestore添加一组字段时,cloud firestore会自动生成一个id,并在该文档或id中构造您已添加的字段。不可能像您所说的那样自动添加另一个字段,因为您必须为firebase提供文档id才能知道在何处添加该字段 不幸的是,您无法实现所需的功能。唯一的解决方案是手动添加缺少的字段Flutter 如何为每个现有文档添加一个新字段,只需单击一次即可获得颤振应用程序,flutter,google-cloud-firestore,Flutter,Google Cloud Firestore,我正在开发一个flatter应用程序,在这里我使用streambuilder获取cloudfirestore,效果很好。我还实现了一个管理应用程序来创建更多列表数据。问题是我目前正在添加文档字段标题、图像、地址、描述等,但现在我想添加更多字段,如位置\ url。要添加该字段,我必须转到firebase控制台并手动添加文档字段,这非常痛苦,因为我已经创建了100多个文档。如果我没有将location\u url字段添加到现有文档中,那么客户端应用程序将显示错误。因此,有人请告诉我如何在每个现有文档
或者你可以在客户端应用程序中使用硬编码值来避免问题,但我认为这对你没有任何帮助。我理解你的意思,我也遇到过同样的情况 看,当您向cloud firestore添加一组字段时,cloud firestore会自动生成一个id,并在该文档或id中构造您已添加的字段。不可能像您所说的那样自动添加另一个字段,因为您必须为firebase提供文档id才能知道在何处添加该字段 不幸的是,您无法实现所需的功能。唯一的解决方案是手动添加缺少的字段
或者您可以在客户端应用程序中使用硬编码值来避免此问题,但我认为这对您没有任何帮助。在使用NoSQL数据库时,向数据模型添加新字段、文档或集合是很常见的。因此,必须处理旧模式的现有数据也是一个常见问题 在这些情况下,您拥有的是更改前的数据模型/模式,以及更改后的数据模型/模式。您必须确保您的应用程序能够处理这些更改,也称为模式迁移 有两种常见的方法:
例如,在这种情况下,当您第一次从文档中读取新字段时,您可以轻松地为代码中的新字段设置默认值:
var value=document['location\u url']??'默认值“
”在使用NoSQL数据库时,向数据模型添加新字段、文档或集合非常常见。因此,必须处理旧模式的现有数据也是一个常见问题
在这些情况下,您拥有的是更改前的数据模型/模式,以及更改后的数据模型/模式。您必须确保您的应用程序能够处理这些更改,也称为模式迁移
有两种常见的方法:
例如,在这种情况下,当您第一次从文档中读取新字段时,您可以轻松地为代码中的新字段设置默认值:
var value=document['location\u url']??'默认值“
我创建了一个python脚本cli,用于使用单个命令向集合的所有文档添加一个新字段
这是回购协议
我创建了一个python脚本cli,用于使用单个命令向集合的所有文档添加一个新字段 这是回购协议
我处理这种情况的方法是使用转换器。Firebase为您提供了在Firebase本身之间转换数据的能力。给我看看信息
final universities = snapshot.data.documents[index];
final String name = universities["name"];
final String address = universities["address"];
final String govtprivat = universities["govtprivat"];
final String url = universities["url"];
final String location_url = universities["location_url"];
title: Text(name==null? 'Name':name,
style: TextStyle(
fontSize: 18,
fontWeight: FontWeight.bold),
maxLines: 1,
),
subtitle: Text(
address==null? 'Address not available':address,
style: TextStyle(fontSize: 16),
maxLines: 1,
),