Afficher le contenu du fichier de firebase database dans Android Studio

J’utilise Android Studio pour développer mon application depuis sa sortie.

Tout fonctionne bien jusqu’à récemment, je dois déboguer avec la vérification du fichier de firebase database. Comme je ne sais pas comment voir directement la firebase database, lorsque je débogue pour générer le fichier de firebase database, je dois exporter le fichier de firebase database de mon téléphone vers le PC.

Pour ce faire, je dois ouvrir DDMS > File Explorer . Une fois que j’ouvre le DDMS, je dois reconnecter l’USB et je perds mon fil de débogage. Après avoir vérifié le fichier de firebase database, je dois fermer le DDMS et reconnecter l’USB pour revenir au mode de débogage.

C’est trop compliqué. Est-ce que quelqu’un a un meilleur moyen de le faire dans Android Studio (je sais que c’est plus facile dans Eclipse)?

Affichage des bases de données à partir d’Android Studio:

Modifier: pour afficher votre firebase database sur un émulateur, procédez comme suit (pour le périphérique réel, faites défiler vers le bas):

  1. Téléchargez et installez SQLiteBrowser .
  2. Copiez la firebase database de l’appareil sur votre PC:

    • Versions d’Android Studio <3.0 :

      • Ouvrez DDMS via Tools > Android > Android Device Monitor

      • Cliquez sur votre appareil à gauche.
        Vous devriez voir votre application: entrer la description de l'image ici

      • Allez dans l’ explorateur de fichiers (l’un des tabs à droite), accédez à /data/data/databases entrer la description de l'image ici

      • Sélectionnez la base de données en cliquant simplement dessus.

      • Accédez au coin supérieur droit de la fenêtre Android Device Monitor. Cliquez sur le bouton ” extraire un fichier du périphérique “: entrer la description de l'image ici

      • Une fenêtre s’ouvrira vous demandant où vous voulez enregistrer votre fichier de firebase database. Enregistrez-le où vous voulez sur votre PC.

    • Versions d’Android Studio> = 3.0 :

      • Ouvrir l’ explorateur de fichiers de périphérique via View > Tool Windows > Device File Explorer

      • Accédez à data > data > PACKAGE_NAME > database , où PACKAGE_NAME est le nom de votre package (il s’agit de com.Movie dans l’exemple ci-dessus)

      • Cliquez avec le bouton droit sur la firebase database et sélectionnez Save As... Enregistrez-le où vous voulez sur votre PC.

  3. Maintenant, ouvrez le SQLiteBrowser que vous avez installé. Cliquez sur « ouvrir la base de données », accédez à l’emplacement où vous avez enregistré le fichier de firebase database et ouvrez-le . Vous pouvez maintenant afficher le contenu de votre firebase database.


Pour afficher votre firebase database sur votre appareil mobile:

Accédez à ce référentiel Github et suivez les instructions du fichier Lisez-moi pour pouvoir afficher votre firebase database sur votre appareil. Ce que vous obtenez est quelque chose comme ça:

entrer la description de l'image ici

C’est tout. Il va sans dire que vous devez annuler toutes ces étapes avant de publier votre application.

Se connecter à Sqlite3 via ADB Shell

Je n’ai trouvé aucun moyen de le faire dans Android Studio, mais j’accède à la firebase database avec un shell distant au lieu de tirer le fichier à chaque fois.

Retrouvez toutes les informations ici: http://developer.android.com/tools/help/adb.html#sqlite

1- Accédez à votre dossier platform-tools dans une invite de commande

2- Entrez la commande adb devices pour obtenir la liste de vos appareils

 C:\Android\adt-bundle-windows-x86_64\sdk\platform-tools>adb devices List of devices attached emulator-xxxx device 

3- Connectez un shell à votre appareil:

 C:\Android\adt-bundle-windows-x86_64\sdk\platform-tools>adb -s emulator-xxxx shell 

4- Naviguez jusqu’au dossier contenant votre fichier de firebase database:

 cd data/data//databases/ 

5- lancez sqlite3 pour vous connecter à votre firebase database:

 sqlite3 .db 

6- exécuter les commandes sqlite3 que vous aimez, par exemple:

 Select * from table1 where ...; 

Remarque: Recherchez d’autres commandes à exécuter ci-dessous.

SQLite cheatsheet

Il y a quelques étapes pour voir les tables dans une firebase database SQLite:

  1. Listez les tables dans votre firebase database:

     .tables 
  2. Répertoriez l’apparence de la table:

     .schema tablename 
  3. Imprimer le tableau entier:

     SELECT * FROM tablename; 
  4. Répertorie toutes les commandes d’invite SQLite disponibles:

     .help 

Méthode la plus simple lorsque vous n’utilisez pas un émulateur

 $ adb shell $ run-as your.package.name $ chmod 777 databases $ chmod 777 databases/databse_name $ exit $ cp /data/data/your.package.name/databases/database_name /sdcard $ run-as your.package.name # Optional $ chmod 660 databases/database_name # Optional $ chmod 660 databases # Optional $ exit # Optional $ exit $ adb pull /sdcard/database_name 

Mises en garde:

Je n’ai pas testé cela depuis un moment. Il ne peut pas fonctionner sur API> = 25. Si la commande cp ne fonctionne pas, essayez plutôt l’une des méthodes suivantes:

 # Pick a writeable directory  other than /sdcard $ cp /data/data/your.package.name/databases/database_name  # Exit and pull from the terminal on your PC $ exit $ adb pull /data/data/your.package.name/databases/database_name 

Explication:

Le premier bloc configure les permissions de votre firebase database pour qu’elles soient lisibles. Cela permet d’exploiter run-as qui vous permet d’emprunter l’identité de l’utilisateur de votre package pour effectuer le changement.

 $ adb shell $ run-as your.package.name $ chmod 777 databases $ chmod 777 databases/databse_name $ exit # Closes the shell started with run-as 

Ensuite, nous copions la firebase database dans un répertoire accessible en lecture / écriture. Cela permet à l’utilisateur d’accéder à l’utilisateur.

 $ cp /data/data/your.package.name/databases/database_name /sdcard 

Ensuite, remplacez les privilèges de lecture / écriture existants. Ceci est important pour la sécurité de votre application, mais les privilèges seront remplacés lors de la prochaine installation.

 $ run-as your.package.name $ chmod 660 databases/database_name $ chmod 660 databases $ exit # Exit the shell started with run-as 

Enfin, copiez la firebase database sur le disque local.

 $ exit # Exits shell on the mobile device (from adb shell) $ adb pull /sdcard/database_name 

Je suis vraiment très surpris que personne n’ait donné cette solution:

Jetez un oeil à Stetho

J’ai utilisé Stetho à plusieurs resockets à des fins différentes (l’une d’entre elles étant l’inspection de firebase database). Sur le site Web proprement dit, ils parlent également des fonctionnalités d’inspection du réseau et de la hiérarchie des vues.

Il ne nécessite qu’une petite configuration: 1 ajout de dépendances graduelles (que vous pouvez commenter pour les versions de production), quelques lignes de code pour instancier Stetho et un navigateur Chrome (car il utilise les devtools de Chrome pour tout).

Mise à jour : vous pouvez maintenant utiliser Stetho pour afficher les fichiers Realm (si vous utilisez Realm au lieu d’une firebase database SQLite): https://github.com/uPhyca/stetho-realm

Mise à jour n ° 2 : vous pouvez maintenant utiliser Stetho pour afficher les documents Couchbase: https://github.com/RobotPajamas/Stetho-Couchbase

Mise à jour n ° 3 : Facebook concentre ses efforts sur l’ajout de toutes les fonctionnalités de Stetho dans son nouvel outil, Flipper. Flipper possède déjà de nombreuses fonctionnalités de Stetho. Alors, maintenant, peut-être le bon moment pour faire le changement. https://fbflipper.com/docs/stetho.html

Enfin, j’ai trouvé une solution plus simple qui n’a pas besoin d’ouvrir le DDMS.

En fait, la solution est basée sur ce que @Distwo a mentionné, mais ce n’est pas forcément compliqué.

Tout d’abord , rappelez-vous le chemin de votre fichier de firebase database dans le périphérique, il devrait toujours être le même. Par exemple, le mien est: /data/data/com.XXX.module/databases/com.XXX.module.database

Deuxièmement , exécutez cette commande qui extrait votre fichier de firebase database sur votre PC

  adb pull /data/data/com.XXX.module/databases/com.XXX.module.database /Users/somePathOnYourPC/ 

Ce que vous devez faire est de simplement copier et stocker cette commande, vous pouvez alors l’utiliser encore et encore.

Troisièmement , si vous avez une permission refusée ou quelque chose du genre, lancez adb root avant la commande précédente.

Dans Android Studio 3, vous pouvez voir une section “Explorateur de fichiers de périphérique” dans la partie inférieure droite de Android Studio.

Ouvrez-le, puis vous pouvez voir l’arborescence de fichiers, vous pouvez trouver une application bases de données dans ce chemin:

 /data/data/{package_name}/databases/ 

entrer la description de l'image ici

Essayez ce plugin de studio Android SQLScout . vous pouvez voir et modifier votre firebase database d’applications en temps réel.

SQLScout

Edit: Rappelez vous que c’est un plugin payant, mais que vous avez un essai 24h / 24 et que vous avez besoin de temps pour les maux de tête.

Pour savoir où la firebase database sqlite stockée créée par vous dans Android Studio, vous devez suivre des étapes simples:

 1.Run your application 2.Go to Tools--->Android---->Device Monitor 3.Find your application name in left panel 4.Then click on File Explorer tab 5.Select data folder 6.Select data folder again and find your app or module name 7.Click on your database name 8.On right-top window you have an option to pull file from device. 9.Click it and save it on your PC 10.Use FireFox Sqlite manager to attach it to your project. 

Pour plus d’informations, ce lien sera utile. http://www.c-sharpcorner.com/UploadFile/e14021/know-where-database-is-stored-in-android-studio/

Pour afficher vos données présentes dans le fichier db, vous devez télécharger le navigateur sqlite ou append le même plug-in dans n’importe quel navigateur. Vous devez donc ouvrir le fichier dans le navigateur et afficher vos données.

Téléchargez le navigateur depuis http://sqlitebrowser.org/

Voici une capture d’écran montrant un navigateur contenant une firebase database de registre

Merci,

Après avoir parcouru toutes les solutions, je suggérerai

Utilisez Stethos
Voyons comment c’est simple

Ajouter les dépendances suivantes dans le fichier build.gradle

 comstack 'com.facebook.stetho:stetho:1.5.0' comstack 'com.facebook.stetho:stetho-js-rhino:1.4.2' 

Puis allez à la méthode mainActivity onCreate ajoutez la ligne suivante

 Stetho.initializeWithDefaults(this); 

cela vous obligerait à

 import com.facebook.stetho.Stetho; 

maintenant tout en exécutant l’application du studio Android, Open Chrome et dans le type de barre d’adresse
chrome: // inspect /

Dans l’onglet Ressources> Web SQL, vérifiez facilement la firebase database et la table en temps réel.

Ce n’est peut-être pas la réponse que vous recherchez, mais je n’ai pas de meilleur moyen de télécharger la firebase database depuis un téléphone. Ce que je suggère, c’est de vous assurer que vous utilisez ce mini-DDMS. Il sera super-caché si vous ne cliquez pas sur la très petite case camoflage tout en bas à gauche du programme. (essayé de survoler sinon vous pourriez le manquer.)

Le menu déroulant indique également l’absence de filtres (en haut à droite). Il a littéralement une tonne de façons différentes que vous pouvez surveiller différents processus / applications par PPID, nom, et bien plus encore. J’ai toujours utilisé ceci pour surveiller le téléphone, mais n’oubliez pas que je ne fais pas le type de travail de développement qui doit être positif à 120%, que la firebase database ne fait pas quelque chose d’extraordinaire.

J’espère que cela aide

entrer la description de l'image ici

C’est une très vieille question et ma réponse est similaire à certaines réponses ci-dessus, mais BEAUCOUP plus rapide. Le script ci-dessous est pour Mac, mais je suis sûr que quelqu’un peut le modifier pour Windows.

1) Ouvrez Script Editor sur votre Mac (vous pouvez simplement rechercher Script Editor dans Spotlight)
2) Copiez et collez le texte ci-dessous et modifiez-le avec le chemin du SDK, le nom du paquet, etc. (voir ci-dessous)
3) Enregistrez le script!

C’est tout! Appuyez simplement sur le bouton de lecture pour obtenir le fichier de firebase database mis à jour, qui sera sur votre bureau.

Remplacez les éléments suivants dans le script ci-dessous:

path_to_my_sdk == >> mettre le chemin complet vers votre SDK
my_package_name == >> nom du paquet de votre application
myDbName.db == >> nom de fichier de votre firebase database

 set getLocalDb to "path_to_my_sdk/platform-tools/adb shell run-as my_package_name chmod 777 databases && path_to_my_sdk/platform-tools/adb shell run-as my_package_name chmod 777 databases/myDbName.db && path_to_my_sdk/platform-tools/adb shell run-as my_package_name cp databases/myDbName.db /sdcard/myDbName.db && path_to_my_sdk/platform-tools/adb pull /sdcard/myDbName.db /Users/User/Desktop/myDbName.db" do shell script getLocalDb 

J’espère que cela aide quelqu’un.

J’utilise Windows 7, mon appareil est une API 23 émulée par un appareil Android. Je suppose que c’est la même chose pour tout appareil réel tant qu’il est enraciné et que l’API ne dépasse pas 23

Allez dans Outils -> Android -> Moniteur de périphérique Android. Allez dans l’explorateur de fichiers. Dans mon cas, c’est dans data / data // app_webview / databases / file_0 / 1

Je dois append manuellement .db à la fin du fichier nommé “1”

Je sais que la question est plutôt ancienne mais je crois que ce problème est toujours présent.

Affichage des bases de données à partir de votre navigateur

J’ai créé un outil de développement que vous pouvez intégrer en tant que lib dans votre projet d’application Android. L’outil ouvre un socket serveur dans votre application pour communiquer via un navigateur Web. Vous pouvez parcourir toute votre firebase database et télécharger le fichier de firebase database directement via le navigateur.

entrer la description de l'image ici

L’intégration peut être faite via jitpack.io:

projet build.gradle:

 //... allprojects { repositories { jcenter() maven { url 'https://jitpack.io' } } } //... 

app build.gradle:

 //... dependencies { //... debugComstack 'com.github.sanidgmbh:debugghost:v1.1' //... } //... 

Classe d’application d’installation

Afin de ne comstackr que DebugGhostLib dans certains types de build ou certaines versions de produit, nous avons besoin d’une classe Application abstraite qui sera dérivée dans les versions spéciales. Placez la classe suivante dans votre dossier main (sous java > your.app.package ):

 public class AbstractDebugGhostExampleApplication extends Application { @Override public void onCreate() { super.onCreate(); // Do your general application stuff } } 

Maintenant, pour le type de version de votre version (ou la version du produit), vous ajoutez la classe d’application suivante à votre dossier de release (ou de produit-saveur) (également sous java > your.app.package ):

 public class MyApp extends AbstractDebugGhostExampleApplication { @Override public void onCreate() { super.onCreate(); } } 

C’est la classe d’application qui ne référencera pas DebugGhostLib.

AndroidManifest.xml également à votre AndroidManifest.xml que vous utilisez votre propre classe d’application. Cela sera fait dans votre dossier main :

        

Maintenant, pour votre type de construction de débogage (ou la saveur du produit), vous ajoutez la classe Application suivante à votre dossier de debug (ou de saveur de produit) (également sous java > your.app.package ):

 public class MyApp extends AbstractDebugGhostExampleApplication { private DebugGhostBridge mDebugGhostBridge; @Override public void onCreate() { super.onCreate(); mDebugGhostBridge = new DebugGhostBridge(this, MyDatabaseHelper.DATABASE_NAME, MyDatabaseHelper.DATABASE_VERSION); mDebugGhostBridge.startDebugGhost(); } } 

Vous pouvez obtenir l’ outil ici .

Je devais tirer la firebase database du téléphone vers le PC. Maintenant, j’utilise cette application très bien faite et gratuite qui a beaucoup de fonctionnalités. Il fonctionne sur API 4.1+ avec un périphérique rooté .
Faites-moi savoir si vous trouvez comment le faire fonctionner sans root.

Capture d'écran SqlitePrime

https://play.google.com/store/apps/details?id=com.lastempirestudio.sqliteprime

Pour Android Studio 3.X

  1. Affichage -> Outils Windows -> Explorateur de fichiers de périphérique
  2. Dans l’explorateur de fichiers data-> data-> com. (Votre package d’application) -> bases de données
  3. Faites un clic droit sur la firebase database et économisez sur votre ordinateur local. Pour ouvrir, le fichier que vous pouvez utiliser SQLite Studio en faisant simplement glisser le fichier de firebase database sur celui-ci.

Voici le lien vers SQLite Studio: https://sqlitestudio.pl/index.rvt?act=download

J’ai mis en place une automatisation de ligne de commande Unix de ce processus et mis le code ici:

https://github.com/elliptic1/Android-Sqlite3-Monitor

C’est un script shell qui prend le nom du package et le nom de la firebase database en tant que parameters, télécharge le fichier de firebase database à partir du périphérique Android connecté et exécute le script personnalisé sur le fichier téléchargé. Ensuite, avec un outil unix tel que “watch”, vous pouvez avoir une fenêtre de terminal ouverte avec une vue de mise à jour périodique de votre sortie de script de firebase database.

Ouvrez le terminal Explore Device File au bas de Android Studio.

Ouvrez le dossier nommé Données , puis à l’intérieur de Données, ouvrez à nouveau les données du dossier.

Ouvrir les données du dossier

Faites défiler la liste des dossiers et recherchez le dossier avec votre.package.name. Ouvrez le dossier your.package.name > Database . Vous obtenez votre nom de base de données . Cliquez avec le bouton droit sur votre nom.database et enregistrez sur C: / votre / ordinateur / répertoire.

Accédez à C: / your / Computer / Directory ouvrez votre fichier.databaseName avec DB SQLite.

entrer la description de l'image ici

Le moyen le plus simple consiste à connecter votre appareil et à exécuter Android Studio puis à partir de la barre d’outils:

  1. Affichage -> Fenêtre Outils -> Explorateur de fichiers de périphérique
  2. Aller dans les données / données et trouver votre colis
  3. trouver le fichier de firebase database que vous souhaitez explorer et le télécharger
  4. Je recommande sur cet outil en ligne: https://sqliteonline.com/ pour explorer le fichier db

Une autre méthode consiste à utiliser la bibliothèque Stetho:

  1. Ajoutez la dépendance Stello à votre build.gradle:

    comstack ‘com.facebook.stetho: stetho: 1.5.0’

  2. Placez la ligne suivante sur votre onCreate () de votre classe d’application ou de votre activité principale:

    Stetho.initializeWithDefaults (this);

  3. Connectez votre appareil, exécutez l’application et entrez le site suivant sur Chrome:

    chrome: // inspect / # devices

et c’est tout. vous pouvez maintenant explorer vos tables.

Remarque: il est recommandé de supprimer la dépendance avant de passer en production.