# Add Firebase Firestore Database

We will store additional information about the user when the sign in or register, eg. bio, preference etc.

Add package cloud\_firestore to pubspec.yaml

```yaml
cloud_firestore: ^4.15.5
```

login\_screen.dart

````dart
```dart
  final _firestore = FirebaseFirestore.instance;
  Future<void> createNewUserData() async {
    _firestore.collection('users').doc(_auth.currentUser?.uid).set({
      'name': 'Mentee',
      'uid': _auth.currentUser?.uid,
      'bio': 'Flutter Devcamp Mentee',
      'completed': [],
      'recents': [],
      'badges': [],
      'certificates': [],
      'profilePic': ''
    });
  }
```
````

line 196 makes the call to **createNewUserData**&#x20;

Let's get the courses from the database widgets => explore\_course\_list.dart add a field variable

```dart
final _firestore = FirebaseFirestore.instance;
```

```dart
void getCourses() {
    _firestore.collection("courses").get().then((snapshot) {
      snapshot.docs.forEach((doc) {
        setState(() {
          courses.add(Course(
              courseTitle: doc["courseTitle"],
              courseSubtitle: doc["courseSubtitle"],
              illustration: doc["illustration"],
              logo: doc["logo"],
              background: LinearGradient(colors: [
                Color(int.parse(doc["color"][0])),
                Color(int.parse(doc["color"][1])),
              ]),
              videoUrl: doc["videoUrl"]));
        });
      });
    });
  }
```

use courses variable in the build method,&#x20;
