如何在Flustore中使用Flutter基于动态uid创建子集合?
体系结构应如下所示:用户(集合)-> UID(文档-每个用户唯一)->库(集合)->凭证(文档)
我目前正在使用以下实现,显然,该实现在被调用时仅创建了我需要的体系结构,只是使用字符串“ uid”代替用户的动态uid作为保管库集合所在的文档。如何更改此设置document('uid')元素是当前用户的实际uid文档,而不仅仅是字符串“ uid”?
import 'package:mindpass/models/user.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
class DatabaseService {
final String uid;
DatabaseService({ this.uid });
String credential;
// collection reference
final CollectionReference vaultCollection = Firestore.instance.collection('users').document('uid').collection('vault');
Future<void> updateVaultData(String credUN, String timeStamp) async {
return await vaultCollection.document(credential).setData({
'credUN': '"aribtraryUN"',
'timeStamp': Timestamp.now()
});
}
如果用户使用Firebase身份验证登录,则可以通过以下方式获取其UID:
var user = await FirebaseAuth.instance.currentUser();
var uid = user.uid;
然后通过以下方式获取其保管库集合:
final CollectionReference vaultCollection = Firestore.instance.collection('users').document(uid).collection('vault');
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句