如何使用Flutter在Firestore中的uid文档中创建集合?

时间:2020-03-15 02:42:49

标签: firebase flutter google-cloud-firestore uid

如何在Flustore中使用Flutter基于动态uid创建子集合?

架构应如下所示: 用户(集合)-> UID(文档-每个用户唯一)->保险库(集合)->凭证(文档)

我当前正在使用以下实现,显然,该实现在被调用时只是创建了我需要的 except 架构,以使用字符串“ 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()
  });
  }

1 个答案:

答案 0 :(得分:3)

如果用户使用Firebase身份验证登录,则可以通过以下方式获取其UID:

var user = await FirebaseAuth.instance.currentUser();
var uid = user.uid;

然后使用以下命令获取其保管库集合:

final CollectionReference vaultCollection = Firestore.instance.collection('users').document(uid).collection('vault');