Firebase Nutzerdaten beschränken.

  • Antworten:10
Alex Mehler
  • Forum-Beiträge: 6

09.10.2020, 19:41:22 via Website

Hallo ich entwickle gerade eine App für unsere Firma , unsere Mitarbeiter gehen dabei in die Firmen unserer Kunden und zeichnen mit der App Daten an verschiedenen Kontrollpunkten auf.

Ich möchte aber gerne auch ein Webinterface für den Kunden schreiben wo er komfortabel die Daten selber angucken kann bzw ausdrucken, Zeitkurve berechnen etc.

Das würde bedeuten ich brauche 2 LOGIN Systeme , eins für den Mitarbeiter mit Schreibund Lese Rechten auf alle Kunden, und für den Kunden, nur Leserechte durch das Webinterface

Aber umso mehr ich mir Firebase angucke ist das glaube ich garnicht möglich. oder ?

Im Prinzip könnte ein Externer einfach auf meine Firebase zugreifen und zum Beispiel einfach den createuser Funktion spammen, bzw mit einwenig umschreiben des Codes einfach alle Daten abrufen die er will(gerade im Browser sollte das einfach sein). Verstehe das nicht. ist Firebase Komplett ungeignet für mein Projekt?

oder muss ich die Webapp komplett delpoyen und den Code nur auf dem Server laufen lassen, dort die ganzen Daten bereitstellen und an ne extra Seite schicken ?

Vielen Dank , für mich ist das alles komplett neu. Bitte klärt mich mal auf

Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

09.10.2020, 19:52:31 via Website

Hallo Alex,

herzlich wikommen hier im Forum :)



Welche Funktionen von Firebase nutzt du? Inzwischen gibt es da so viele, das es sinvoll wäre den genauen Dienst zu kennen.

Auf einem Firestore (DB) kannst du auf jeden Fall ein Rechtsystem implementieren:
https://firebase.google.com/docs/firestore/solutions/role-based-access
oder
https://firebase.google.com/docs/projects/iam/overview

Und eigentlich brauchst du keine 2 Loginsysteme sondern nur eine Rechteverwaltung ;)
Das solte Firebase auch können, nur dafür ist es wichtig zu wissen, welche Dienste du nutzt.

— geändert am 09.10.2020, 19:54:27

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Alex Mehler
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

09.10.2020, 20:05:13 via Website

Hallo von mir auch ein Willkommen.

Firebase kann das alles. User Rechte, dazu schaue dir die Rules bei Firebase an.
Zwei Logins brauchst du nicht, wenn du den Usern auch unterschiedliche Rechte gibst.
Der Zugriff auf Daten der Realtime DB wird mit Rules geregelt.

— geändert am 09.10.2020, 20:07:49

Hilfreich?
Alex MehlerPascal P.
Kommentieren
Alex Mehler
  • Forum-Beiträge: 6

09.10.2020, 20:30:28 via Website

Danke für die schnelle Antwort. Ich benutze eigentlich nur Firestore , eventuell kommt Firebase Storage noch dazu(um Fotos zu Speichern).

Für uns habe ich eine Android App mit Ionic geschrieben(Die funktioniert schon mit nem simplen json backend ganz gut, nächster Schritt wäre halt die firestore Anbindung).

Für den Kunden möchte ich wie gesagt eine Webseite/Webapp machen, auf der er die Daten für seinen Betrieb angucken kann.

Ich werde mich morgen mal in die Authorisierung und die Sicherheitsregeln reinlesen und rumprobieren. Danke für den Link!

Meine Sorge war halt dass man ja einfach mit den Entwicklertools im Browser die Scripte modifizieren kann. Aber vielleicht wird das ja auch alles automatisch im Hintergrund von Firebase verwaltet und ich mache mir unnütz Sorgen.

Hilfreich?
Kommentieren
Alex Mehler
  • Forum-Beiträge: 6

09.10.2020, 20:48:31 via Website

OK jetzt mal gerade security rule

allow read, write: if request.auth != null;

probiert.

Aber von meiner app kann ich auch ohne Authentifizierung Daten in mein "test" Dokument hochladen. Komisch.

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

09.10.2020, 21:14:19 via Website

Du bist ja bestimmt schon angemeldet und somit autorisiert.
Hast du denn auch eine Autorisierung mit Emaile und PW gemacht ?
Und existiert jetzt auch der User in der DB.

Wenn du das testen willst musst du dich auch von deiner DB abmelden und dann testen.

Eigentlich ist es auch richtig das du auf die DB kommst denn du bist angemeldet hast ein Auth.
Die Regel sagt wenn du ein auth hast darfst du zugreifen .
Du musst dann schon für die einzelnen User die rechte auch vergeben und in den Regel festhalten.
Dazu solltest du auch die User in der Db speichern UserID.

Eigentlich ist auch die Rule für die Echtzeit DB und nicht für die Firestore da gibt es eine andere Sprache .
https://firebase.google.com/docs/rules/basics?authuser=0#cloud-firestore

— geändert am 09.10.2020, 21:53:50

Hilfreich?
Alex MehlerPascal P.
Kommentieren
Alex Mehler
  • Forum-Beiträge: 6

10.10.2020, 13:49:02 via Website

Ja genau ich war anscheinend immer noch authentifiziert obwohl ich die app einfach gecrashed habe. Also man bleibt solange authentifiziert bis man wieder

.auth.signOut()

aufruft. Zumindest im normalen Modus.

In der Doku habe ich gelesen dass man den auth auch auf "session" umstellen kann. Also wenn man die app crashed oder sie im Hintergrund von android beendet wird , muss man sich dann immer wieder neu einloggen. Das ist genau das Verhalten was ich möchte.

Allerdings weiß ich jetzt nicht wo man das mit Angularfire in einer ionic app einstellt.

EDIT:
Juhu ! es funktioniert !
im constructor von meinem Auth Service in Ionic muss ich nur

this.ngFireAuth.auth.setPersistence(auth.Auth.Persistence.SESSION);

aufrufen.

dazu muss man neben

import { AngularFireAuth } from "@angular/fire/auth";

auch noch

import { auth } from 'firebase/app';

importieren.

Dann ist man automatisch ausgeloggt, falls die App vorzeitig geschlossen wird.

So cool , dass das alles so gut funktioniert. Da hat Google etwas richtig feines erstellt !

— geändert am 10.10.2020, 14:17:14

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

10.10.2020, 14:30:47 via Website

In der Doku habe ich gelesen dass man den auth auch auf "session" umstellen kann

Wo hast du das gelesen?
Das ist eigentlich etwas für das Web Interfase nicht Android.

Wie wäre es wen du den user in der onPause oder onStopt abmeldest.

— geändert am 10.10.2020, 14:36:49

Hilfreich?
Kommentieren
Alex Mehler
  • Forum-Beiträge: 6

10.10.2020, 14:36:17 via Website

Jokel

In der Doku habe ich gelesen dass man den auth auch auf "session" umstellen kann

Wo hast du das gelesen?

Wie wäre es wen du den user in der onPause oder onStopt abmeldest.

siehe den edit von meinem vorherigen post.

hier der doku link: https: //firebase.google.com/docs/auth/web/auth-state-persistence

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.530

10.10.2020, 14:44:43 via Website

ich habe meinen Post auch editiert und dir dort auch gesagt das es für das Web interfase ist.
Ionic benutzt dann wohl die web API.

Hilfreich?
Kommentieren
Alex Mehler
  • Forum-Beiträge: 6

10.10.2020, 14:52:42 via Website

ja klar , ionic ist so eine art hybrid Dingens zwischen webapp und nativer android app. anders(mit der android sdk in java) hätte ich niemals ne app schreiben können. Kam schon alles sehr gelegen.

Hilfreich?
Kommentieren