Почему база данных Firebase (Firestore) не добавляет документы - PullRequest
1 голос
/ 10 января 2020

Я пытаюсь добавить usersData с этим:

import 'package:cloud_firestore/cloud_firestore.dart';

class DatabaseService {

    final String uid;
    DatabaseService({this.uid});

    // collection reference
    final CollectionReference nextCollection = Firestore.instance.collection('usersData');

    Future updateUserData(String firstName, String lastName, String country) async{

        return await nextCollection.document(uid).setData({
          'firstName':firstName,
          'lastName':lastName,
          'country':country,
        });
    }
}

, вызывая его, когда пользователь регистрируется:

Future register(String email, String pwd) async {

    try {
      AuthResult result = await _auth.createUserWithEmailAndPassword(email: email, password: pwd);
      FirebaseUser user = result.user;

      //Create new document for the user 
      await DatabaseService(uid: user.uid)
      .updateUserData('Saad','AMRANI','laayoune');

      return _userFromFireBaseUser(user);
    } 
    catch (e) 
    {
      print(e.toString());
      return null;
    }
}

пользователь регистрируется успешно, но исходные данные с помощью uid как документ uniq ключ в коллекции usersData не работает!

скриншот журналов

pubspe c .yaml

dependencies:
   firebase_auth: ^0.14.0+5 
   cloud_firestore: ^0.12.9+4 

Приложение build.gradle

 defaultConfig {
    // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
    applicationId "com.nextconcept.nextMain"
    minSdkVersion 16 //21
    multiDexEnabled true //added
    targetSdkVersion 28
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    //implementation 'com.google.firebase:firebase-analytics:17.2.0'
}

root build.gradle

 dependencies {
    classpath 'com.google.gms:google-services:4.0.1'
    classpath 'com.android.tools.build:gradle:3.5.0'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}

1 Ответ

0 голосов
/ 10 января 2020

У вас нет разрешений на запись в эту коллекцию.

См. эту ссылку для управления правилами безопасности Cloud Firestore.

Чтобы разрешить любому зарегистрированному пользователю читать и напиши:

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth.uid != null;
    }
  }
}

...