英文:
how to get user document id while adding record to firebasefirestore in flutter
问题
I am created a basic app for adding post where i need to store post id
我创建了一个基本的应用程序用于添加帖子,我需要存储帖子的ID
I dont want to generate any id my own way, to know if there is a another way
我不想以我自己的方式生成任何ID,想知道是否有其他方法
here is my coding for adding post
这是我用于添加帖子的代码
IconButton(onPressed: () async {
await FirebaseFirestore.instance.collection("posts").doc().set(
{
'message': txtpost.text,
'postby': FirebaseAuth.instance.currentUser!.email,
'posttime': Timestamp.now(),
'likes':[],
'postid':?????// here how to get current document id
});
print('Post Added Successfully...');
txtpost.clear();
}, icon: Icon(Icons.send))
IconButton(onPressed: () async {
await FirebaseFirestore.instance.collection("posts").doc().set(
{
'message': txtpost.text,
'postby': FirebaseAuth.instance.currentUser!.email,
'posttime': Timestamp.now(),
'likes':[],
'postid':?????// 这里如何获取当前文档的ID
});
print('Post Added Successfully...');
txtpost.clear();
}, icon: Icon(Icons.send))
In your code, you're trying to add a post to Firestore and want to know how to get the current document ID. The ID will be automatically generated when you use .doc()
without specifying an ID. You can access it like this:
在您的代码中,您正在尝试将帖子添加到Firestore,并想知道如何获取当前文档的ID。如果您在使用.doc()
时没有指定ID,ID将自动生成。您可以像这样访问它:
IconButton(onPressed: () async {
final DocumentReference docRef = await FirebaseFirestore.instance.collection("posts").add({
'message': txtpost.text,
'postby': FirebaseAuth.instance.currentUser!.email,
'posttime': Timestamp.now(),
'likes': [],
});
print('Post Added Successfully. Document ID: ${docRef.id}');
txtpost.clear();
}, icon: Icon(Icons.send))
This code uses .add()
to add a document to the "posts" collection, and it will automatically generate a unique ID for the document.
英文:
I am created a basic app for adding post where i need to store post id
I dont want to generate any id my own way, to know if there is a another way
here is my coding for adding post
IconButton(onPressed: () async {
await FirebaseFirestore.instance.collection("posts").doc().set(
{
'message':txtpost.text,
'postby':FirebaseAuth.instance.currentUser!.email,
'posttime':Timestamp.now(),
'likes':[],
'postid':?????// here how to get current document id
});
print('Post Added Successfully...');
txtpost.clear();
}, icon: Icon(Icons.send))
答案1
得分: 1
以下是翻译好的内容:
您可以在没有提供路径时调用函数 doc 时自动生成的 ID。
因此,您可以首先获取 doc 的引用,然后存储帖子。
以下是代码的示例:
IconButton(
onPressed: () async {
final docRef =
FirebaseFirestore.instance.collection('posts').doc();
final docId = docRef.id;
docRef.set(
{
'message': txtpost.text,
'postby': FirebaseAuth.instance.currentUser!.email,
'posttime': Timestamp.now(),
'likes': [],
'postid': docId
},
);
print('帖子已成功添加...');
txtpost.clear();
},
icon: Icon(Icons.send),
),
英文:
You could use the ID that is automatically generated when calling the function doc when no path is provided.
Therefore you could first get the reference of the doc and then store the post.
Here is how the code could look like:
IconButton(
onPressed: () async {
final docRef =
FirebaseFirestore.instance.collection('posts').doc();
final docId = docRef.id;
docRef.set(
{
'message': txtpost.text,
'postby': FirebaseAuth.instance.currentUser!.email,
'posttime': Timestamp.now(),
'likes': [],
'postid': docId
},
);
print('Post Added Successfully...');
txtpost.clear();
},
icon: Icon(Icons.send),
),
答案2
得分: 1
IconButton(
onPressed: () async {
final documentRef = FirebaseFirestore.instance.collection('posts').doc();
final documentId = documentRef.id;
await documentRef.set(
{
'message': txtpost.text,
'postby': FirebaseAuth.instance.currentUser!.email,
'posttime': Timestamp.now(),
'likes': [],
'postid': documentId
}
);
print('Post Added Successfully...');
txtpost.clear();
},
icon: Icon(Icons.send),
)
英文:
The code below should do it:
IconButton(
onPressed: () async {
final documentRef = FirebaseFirestore.instance.collection('posts').doc();
final documentId = documentRef.id;
await documentRef.set(
{
'message':txtpost.text,
'postby':FirebaseAuth.instance.currentUser!.email,
'posttime':Timestamp.now(),
'likes':[],
'postid': documentId
});
print('Post Added Successfully...');
txtpost.clear();
},
icon: Icon(Icons.send),
),
Every document reference comes with an id. You can get this id and set it as the post id.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论