用户文档 ID 与 Firestore 中的用户 ID 相同

Ale*_*Ali 1 dart firebase google-cloud-platform flutter google-cloud-firestore

我尝试将用户存储在 Firestore 中的集合中作为文档,并希望使每个用户 ID 与文档 ID 相同。我尝试过,但它仍然为我提供了另一个用户 ID:

Future<void> userSetupDone() async {
CollectionReference users = FirebaseFirestore.instance.collection('Users');

final docUser = FirebaseFirestore.instance.collection('Users').doc();

FirebaseAuth auth = FirebaseAuth.instance;
String? uid = docUser.id;
// String? uid = auth.currentUser?.uid.toString();
String? email = auth.currentUser?.email.toString();
String? phone = auth.currentUser?.phoneNumber.toString();
String? displayName = auth.currentUser?.displayName.toString();

users.add({'Uid': uid, "Email": email, "Phone": phone, "Name": displayName});
return;
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Ren*_*nec 5

通过调用add()中的方法

users.add({'Uid': uid, "Email": email, "Phone": phone, "Name": displayName});
return;
}
Run Code Online (Sandbox Code Playgroud)

您实际上使用自动生成的 ID创建了一个新文档,因此它的 ID 与您通过 获得的 ID 不同String? uid = docUser.id;

因此,您需要在您创建的(即)上使用该set()方法,如下所示:DocumentReferencedocUser

await docUser.set({'Uid': uid, "Email": email, "Phone": phone, "Name": displayName});
Run Code Online (Sandbox Code Playgroud)