如何在Flutter Firestore中获取用户ID

6

我是Flutter的新手,不知道如何在Firestore中写入特定文档(userId)。

我希望我的数据库像这样: users(集合) |-> userId |->name : Richie

这是我的尝试:

Future<FirebaseUser> user =FirebaseAuth.instance.currentUser();
DocumentReference ref =Firestore.instance.collection('users').document(user.uid);

请帮忙

1个回答

7

在访问id之前,您需要等待获取FirebaseUser。下面我为您创建了一个简单的函数来演示这一点。

Future<DocumentReference> getUserDoc() async {
  final FirebaseAuth _auth = FirebaseAuth.instance;
  final Firestore _firestore = Firestore.instance;

  FirebaseUser user = await _auth.currentUser();
  DocumentReference ref = _firestore.collection('users').document(user.uid);
  return ref;
}

1
非常感谢,它起作用了。但我仍然无法在文档中添加数据。这是我的代码:return ref.setData(data); 错误是->返回类型'Future<void>'不是由方法'getUserDoc'定义的'Future<DocumentReference>'。dart(return_of_invalid_type)。 - Ashwani Kumar
那又是另一个问题,当然。 - Raouf Rahiche
1
好的,那么请尝试将其作为新问题发布,我们会尽力帮助。 - Raouf Rahiche
如果我想将文档添加到具有特定ID的用户中怎么办?我尝试使用db.collection('users').document(uid).setData(dataToBeSet),但它不起作用,抛出了运行时异常。 - Abhishek Mehandiratta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接