Как создать коллекцию внутри документа UID в Firestore, используя Flutter? - PullRequest
0 голосов
/ 15 марта 2020

Как создать подколлекцию в Firestore с Flutter на основе динамического c uid?

Архитектура должна выглядеть следующим образом: пользователи (коллекция) -> UID (документ - уникальный для каждого user) -> vault (collection) -> credential (document)

В настоящее время я использую приведенную ниже реализацию, которая, очевидно, при вызове просто создает нужную мне архитектуру , за исключением для использования Строка "uid" вместо динамического c 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 Ответ

1 голос
/ 15 марта 2020

Если пользователь вошел в систему с помощью аутентификации Firebase, вы можете получить его UID с помощью:

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

, а затем получить коллекцию хранилищ с помощью:

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