Firebase

Firebase is a remote database that can be integrated with Xcode and Swift. It allows the user to save data in the cloud and retrieve it as well.

I started looking into Firebase and there are some things I like and some things I don’t like. 

I really like the possibility to look at the database in a visual form and to have the ability to edit entries in the cloud. This is a functionality that I didn’t find when I was using Core Data. I don’t like, that I had to install cocoa pods. It took me a couple of hours because I got error messages. I also dislike that building the project takes a long time, even though I am working with basic projects. In addition to that, I also currently have problems retrieving data

This is what I have been doing so far.

Importing Firebase

If I want to use Firebase in one of my Swift Programs, I have to import Firebase. To achieve that, I need to write:

import Firebase

Initializing Firebase

When I have Firebase imported, I have to call set up Firebase. This is done in the initializing Method of the entry point of the Swift project. 

@main
struct FirebaseProject: App {
	init(){
		FirebaseApp.configure()
	}
}

Calling methods that use Firebase

When I am done with the first two steps, I can use functions to call, when I want to create data, update data or delete data. Before I can do this, I need a reference to the database. For that, I write:

let db = Firestore.firestore()

When I have access to the database, I need to select a collection. For that, I write:

let collection = db.collection("collectionName")

Now I have access to the collection. With this, I can access the documents that are in this collection. I can also create new documents in the collection.

Create

To create a new document, I can write:

let newDocument = collection.document()

To set the data in the new document, I can write:

newDocument.setData(["key":"value"])

The data is stored in a dictionary with a key value pair. As far as I know, the key has to be a string and the value can have different types, like string, int, boolean and some more. 

Update

To update the value of a specific key of a document, I can write:

newDocument.updateData(["key":"updatedValue"])

This will only update the value for the specified key. If the document has a dictionary with more than one key, the other keys will not be affected or changed. If I overwrite the data, like this:

newDocument.setData(["key":"newValue")

All other keys in the dictionary will be gone because this overwrites the entire dictionary of the document. 

Delete

If I want to delete this document, I can write:

newDocument.delete()

If I am using a for loop, I need to call the reference on the document, which would look like this:

for document in documents {
	document.reference.delete()
}

Connecting to User Interface

Once Firebase is set up in the @main structure, I can use it in my views, like the ContentView

Mich benachrichtigen, wenn es einen neuen Beitrag gibt.

 
 
Share on whatsapp
WhatsApp
Share on email
Email
Share on linkedin
LinkedIn
Share on facebook
Facebook