【发布时间】:2021-04-15 05:01:25
【问题描述】:
我将 Firebase 中的数据更新为字符串。这包括文本、链接、视频链接。如图-Screenshot of content data 现在我想在颤振应用程序中检索内容。我正在检索如下内容-
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
class Test extends StatelessWidget {
@override
Widget build(BuildContext context) {
return StreamBuilder(
stream: FirebaseFirestore.instance
.collection("Insights")
.orderBy("Time", descending: true)
.snapshots(),
builder: (context, AsyncSnapshot<QuerySnapshot> snapshot) {
return ListView.builder(
itemCount: snapshot.data.docs.length,
itemBuilder: (context, index) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Container(
child: Text(
(snapshot.data.docs[index]['Content'])
.toString()
.replaceAll("\\n", "\n"),
style: TextStyle(fontSize: 18),
)),
);
});
});
}
}
当我像上面那样检索数据时,它会将文本和链接显示为字符串。但我想获得像Inkwell in between text and links to video 这样的数据。如图所示,它有墨水瓶,文字和图像显示。
但在我的情况下,所有内容都显示为文本。
有没有什么方法可以动态地包含这些数据而无需在 Flutter 中明确定义或在 firebase 中以任何方式处理它们?
【问题讨论】:
-
您可以简单地为 URL 添加一个单独的参数以简化操作,例如 {"content":content, "url":'www.youtube.com/?1243'}
-
@Ayyaz.meo 感谢您的快速回复。如果我这样做,我将如何处理文本的 url 标记。这意味着我需要在 Flutter 中明确提及 Inkwell。如果我需要像我用多个墨水池附加图像一样获取数据怎么办。那我该如何处理呢?
-
像这样:InkWell(onTap:(){ launchUrl(snapshot.data.docs[index]['url'])},child:ListViewBuilder(snapshot.data.docs[index]['内容']))
-
@Ayyaz.meo 感谢您的详细解释,但我再次怀疑如何将 url 映射到文本,即在多个墨水池对象的情况下哪个 url 将附加到哪个文本。就像我在输出图像中附加的一样。
标签: firebase flutter flutter-layout