如何将字符串数据转换为偏移量数据?



我正在用Firebase制作一个简单的Draw应用程序。该应用程序将绘制的线条(偏移列表,颜色,厚度等)上传到Firestore。当我再次打开应用程序时,我尝试从Firestore检索数据。

上传到Firestore时,我无法上传偏移量和颜色数据,所以我将其转换为字符串后上传。

UploadDrawingModel uploadDrawingModel = UploadDrawingModel(
pointList: currentLine!.pointList!.map((e) => e.toString()).toList(), // offset list
colorString: currentLine!.color!.toString(), // "Color(0xff000000)"
....
);

当我从firestore获得数据时,我必须返回转换为String的原始类型的数据(偏移量,颜色)。我能知道如何将字符串数据转换为偏移和颜色吗?

我宁愿为offsets list创建一个模式
例如,将它们保存到firebase13,5|25,3|...,当我检索它们时,调用split('|')并将它们映射回偏移量对于颜色,你可以上传color.value,这将返回它的整数值,红色的值:4294198070

UploadDrawingModel uploadDrawingModel = UploadDrawingModel(
pointList: currentLine!.pointList!.map((e) => '${e.dx},${e.dy}').join('|'), // offset list
colorString: currentLine!.color!.value.toString(), // "Color(0xff000000)"
....
);

上面的代码将在您的firebase中添加一条记录
pointsList:dx1,dy1|dx2,dy2|dx3,dy3|...
colorString:0000000000

当您检索记录 时

myPointsList = record['pointsList'].toString().split('|').map((e) => Offset(
num.parse(e.split(',').first).toDouble(),
num.parse(e.split(',').last).toDouble(),
));
myColor = Color(int.parse(record['colorString']));

最新更新