Datenbank- Zugriff über ContentProvider/Resolver oder direkt von eigener App aus?

Jaiel

Jaiel

Dauergast
235
Hallo Leute,

Hab ne kleine Frage:

Spricht etwas dagegen auf eine Datenbank indirekt über einen ContentProvider, von der App aus die die DB benutzt, zuzugreifen oder direkt mit den Methoden der SQLite API?!

Grund ist eine zentrale Zugriffsfunktion zu haben auch da anderen Apps die Möglichkeiten auf den Zugriff eben dieser DB gewährt werden soll.


Vielen Dank


Jaiel
 
Jaiel schrieb:
Hallo Leute,

Hab ne kleine Frage:

Spricht etwas dagegen auf eine Datenbank indirekt über einen ContentProvider, von der App aus die die DB benutzt, zuzugreifen oder direkt mit den Methoden der SQLite API?!

Grund ist eine zentrale Zugriffsfunktion zu haben auch da anderen Apps die Möglichkeiten auf den Zugriff eben dieser DB gewährt werden soll.


Vielen Dank


Jaiel

Ja, es spricht alles dagegen. Auf eine Datenbank sollte man über das Internet nie direkt zugreifen. Sie sollte sich immer in einem LAN befinden und dazwischen sollte eine Firewall sein. Der beste Wer ist der:
Web_Browser <-> Web_Server <-> Firewall <-> Datenbank

Vorteil: die Datenbank ist geschützt und man braucht keine spezielle APP.

Fremde Dienste wo die Daten durchlaufen sollte man aus Sicherheitsgründen nie in Anspruch nehmen.

Grüße
 
Meine Frage ging mehr dazu hin ob meine eigene App die die Datenbank anlegt auch über den Contenprovider/Resolver auf die Daten zugreifen sollte so wie andere Apps auch? Der Sinn einen Content Provider zu haben ist ja anderen Apps die Daten der DB zur Verfügung zu stellen. Gibt es da Einschränkungen, Nachteile wieso meine eigene App über den Contentprovider an die Daten gelangt oder sollte sie sozusagen lieber den "VIP-Eingang" benutzen?!

Hab mit DB in Android ncoh nichts gemacht deshalb frage ich mich ob der Weg über Contentprovider zum Anlegen updaten usw. reicht oder ob ich da halt extra Methoden neben denen im Contentprovider schreiben muss(Faulheit tut gut :) )

JAiel
 
@Jaiel

Sorry so detailliert, kenne ich mich mit der API Contenprovider/Resolver nicht aus.
Mach mal ein abstraktes Bildchen wie die Daten aktuell fließen und wie sie neu fleißen sollen, damit man sich das mal visuell vorstellen kann.

Ich hatte beruflich mit Datenbanken zu tun und den Datenschutz-Gesetzen. Ich kann nur empfehlen da sehr vorsichtig zu sein "wem" man seine Daten anvertraut. Natürlich kommt es auch auf die Art von Daten an. Aber sobald Personenbezogene Daten enthalten sind muss man sehr aufpassen.

Ach ja, noch eine Frage, ist deine APP bereits fertig oder noch im Bau?

Grüße

Update:
also ich hab mich mal in die API Contenprovider eingelesen, ich denke das kannst du nutzen.

Update:
Sorry, war zu voreilig. Also wenn ich dich richtig vernstaden habe ist deine APP im Bau. Und du willst nun eine Datenbank benutzen und willst wissen ob du SQlite oder Contenprovider/Resolver benutzen sollst.

Ein Content-Provider verwaltet den Zugriff auf ein zentrales Repository von Daten. Ein Provider ist Teil einer Android-Anwendung, die oft eine eigene Benutzeroberfläche für die Arbeit mit den Daten bereitstellt. Content-Provider sind jedoch in erster Linie dazu gedacht, von anderen Anwendungen genutzt zu werden, die über ein Provider-Clientobjekt auf den Provider zugreifen. Gemeinsam bieten Provider und Provider-Clients eine konsistente, standardmäßige Schnittstelle zu Daten, die auch die Kommunikation zwischen Prozessen und den sicheren Datenzugriff abwickeln.

Sie müssen nicht Ihren eigenen Provider entwickeln, wenn Sie nicht beabsichtigen, Ihre Daten mit anderen Anwendungen zu teilen. Sie benötigen jedoch Ihren eigenen Provider, um benutzerdefinierte Suchvorschläge in Ihrer eigenen Anwendung bereitzustellen. Sie benötigen auch Ihren eigenen Provider, wenn Sie komplexe Daten oder Dateien aus Ihrer Anwendung in andere Anwendungen kopieren und einfügen möchten.

Da die Daten das Gerät im Grunde nie verlassen kannst du es benutzen.

Hier den Link, die Info ist sehr aufschlussreich

Content Providers | Android Developers

Fazit: ich denke du kannst es benutzen viel spass damit.
 
Zuletzt bearbeitet von einem Moderator:
Ein Semesterarbeit für meinen Kurs "Grundlagen Mobiler Anwendungen".

Wir sollen unter anderem Daten für andere Apps bereitstellen via Content Proividern. Die Idde ist eine Notrufapp mit der Möglichkeit dem User erlauben Kontakte (Neben anderen vordefinierten wie Polizei usw) in der App zu speichern. Die sollen in eine Datenbank rein und anderen Apps zur Verfügung gestellt werden. (Sinnlos eigentlich aber der Punkt muss ja irgendwie abgearbeitet werden)

Datenschutz ist jetzt nicht so wichtig weil die eh nicht öffentlich zur Verfügung stehen wird. Falls doch muss man sich da an ein System zum Schutz dieser Daten natürlich überlegen(Email+Passwort, Verschlüsselung z.B.).

Ein Bild habe ich, sowas ind er Art :D

Unbenannt.png

Ähm ja das ganze ist noch im frühen Stadium, aber wir haben uns gedacht dass wir die Daten des User mit Hilfe der Google Cloud online speichern, falls es der User so wünscht damit man es später synchronisieren kann (der Punkt mit der Online Interaktion muss auch erfüllt sein)

Der Kasten in der Mitte soll die Schnittstelle Conten Provider darstellen.

Hat jmnd. eine Idee wie die Bilder der Kontakte gespeichert werden sollen? Das Bild an sich soltle ja nciht in die Datenbank? Den Dateipfad evtl?! Jedoch würde es ja dann Probleme beim synchronisieren geben falls der User mal sein Telefon wechselt muss das Bild ja irgendwo gespeichert werden...

Falls ich das Schaubild erklären soll einfach fragen :)

Jaiel
 
Zuletzt bearbeitet:
Jaiel schrieb:
Ein Semesterarbeit für meinen Kurs "Grundlagen Mobiler Anwendungen".

Warum schreibst du so eine wichtige Info nicht gleich? :biggrin:

Ja, da ist Contenprovider/Resolver genau richtig

Grüße :biggrin:

PS:

ich hab auch was gelernt :blink:
 
Alles Klar Danke :)
 

Ähnliche Themen

M
  • MikelKatzengreis
Antworten
5
Aufrufe
127
swa00
swa00
R
  • Robby1950
2
Antworten
23
Aufrufe
1.015
Robby1950
R
S
Antworten
33
Aufrufe
2.668
Sempervivum
S
Zurück
Oben Unten