当来自 Firebase 时,Flutter 文本输出不会抛出段落行

Flutter text output not throwing paragraph line when comes from Firebase

我有一个文本小部件,其中有 \n\n 以在段落更改时抛出一个空行:

Text('Sibling Rivalry \n\n some more text\n\n> and even more text')

这工作正常并在定义 \n\n 的地方打印空行。但是,当我尝试输出完全相同的文本,但从 Cloud Firestore 检索时,不会抛出空行。

加载代码如下:

final extracted = await _firestore
    .collection('items')
    .where("active", isEqualTo: true)
    .orderBy("playCount", descending: true)
    .getDocuments();

extracted.documents.forEach(
  (mediaData) {

    if (mediaData['itemType'] == 'V') {
      loadedMedia.add(
        MediaItem(
          // load fields for VIDEO,
          title: mediaData['title'],
          description: mediaData['description'],
          itemCatCode: mediaData['itemCatCode'],
          imageUrl: mediaData['imageUrl'],
          itemUrl: mediaData['itemUrl'],
          itemType: mediaData['itemType'],
        ),
      );
    }

然后我尝试通过相同的文本小部件将其输出到屏幕:

Text(mediaItem.description),

顺便说一句,我将文本直接输入到 Firestore 中,描述字段在 Firestore 中定义为字符串。我不知道为什么 /n/n 没有被识别,因为来自 Firestore 的字符串看起来与上面的硬编码字符串完全一样。

对于这方面的任何帮助,我们将不胜感激,因为在最终的应用程序中,有很多文本和很多段落。

Firestore 不支持字符串值中的任何转义序列。如果您在字符串中写入“\n”,您将在读取它时得到准确的结果。如果您需要存储一些特殊的东西,您可能需要自己编码和解码。

再次 mediaItem.description 将“\n”替换为:“\n”(如果您使用 \n 创建了字符串)

您还可以尝试一件事 mediaItem.description 将“\n”替换为:“\n”(如果它是使用某些文本区域等自动创建的)