私はFirefox(Ubuntu)でIndexedDBで遊んでいます
IndexedDB データベースの内容を視覚化する方法はありますか? または、プログラムで行う必要がありますか?
最先端の Chromium ビルドでは、Chrome devtools の [Resources] パネルで IndexedDB のコンテンツを表示できると報告されていますが、Firefox の IndexedDB コンテンツを非プログラム的に表示する方法を 1 つだけ知っています。それは .sqlite ファイルを直接ロードすることです。
Firefox の IndexedDB .sqlite ファイルはOS X にあり、Windows/Users/{USER}/Library/Application Support/Firefox/Profiles/{PROFILE}/indexedDB
にあるはずです。C:\Users\{USER}\AppData\Roaming\Mozilla\Firefox\Profiles\{PROFILE}
私は、クロスプラットフォームである優れた (そして無料の) Firefox ツールSQLite Managerを使用しています。
ただし、コンテンツはバイナリ BLOB として保存されることが多く、人間が判読できない可能性が高いことに注意してください。ただし、キーはテキストとして保存されるため、手で読み取れる必要があります。
更新ローカル ファイルは依然として IDB データベースとストアを表示する優れた方法ですが、Chrome の [リソース] パネルで優れたツールを利用できるようになりました。
Firefox 用の IndexedDB Browser アドオンをダウンロードしました。それはうまくいきます。ダウンロードすると、次の場所にあります。
ツール > Web 開発者 > IndexedDB ブラウザ
https://addons.mozilla.org/en-US/firefox/addon/indexeddb-browserupdated-fix/
編集: Firefox 26 以降、IndexedDB のファイルは
{PROFILE}/indexedDB/に
{PROFILE}/storage/persistent/現在のバージョン (0.1.4) は、この変更を処理しません。ただし、シンボリックリンクで簡単に解決できます。
Ubuntu 上の Firefox indexedDB の場所は次のとおりです。
~/.mozilla/firefox/*.default/storage/persistent/
また
~/.mozilla/firefox-trunk/*.default/storage/persistent/
私の indexeddbviewer を試すことができます。これはhttp://linq2indexeddb.codeplex.comにあります。
次のことを行う必要があります: - 次の参照をページに追加します。
<script type="text/javascript" src="../Scripts/jquery-1.7.2.js"> </script>
<script type="text/javascript" src="../Scripts/jquery-ui-1.8.20.js"> </script>
<script type="text/javascript" src="../Scripts/Linq2IndexedDB.js"> </script>
<script type="text/javascript" src="../Scripts/IndexedDBViewer.js"> </script>
これは、jQuery + jQuery UI および linq2indexedDB を取得する必要があることを意味します (これは私のライブラリであり、http://linq2indexeddb.codeplex.comでも取得できます)。
そして、それを機能させるには、本文に次を追加します。
<body>
<p><label id="lblDatabaseName" for="txtDatabaseName">Database name:</label> <input type="text" id="txtDatabaseName" /><input type="button" id="btnViewDatabase" value="View database" /></p>
<div id="tabs">
<ul>
</ul>
</div>
</body>
できるだけ簡単な方法で解決するようにします。
もう 1 つの方法は、私の linq2indexeddb ライブラリを使用して、次のように新しいインスタンスを作成することです。
var db = window.linq2indexedDB("Database name", null, true)
これを行った場合は、属性ビューアーを呼び出すことができます。これにより、indexeddb データベースに関するすべての情報が得られます。
db.viewer
WhatsApp Web セッションから indexedDB を読み取る必要がありましたが、次のようにしました。
function readDB() {
let dbName = "wawc";
let dbVersion = 70;
let request = indexedDB.open(dbName, dbVersion);
request.onsuccess = e => {
let db = e.target.result
let tx = db.transaction("user", "readonly");
let jstore = tx.objectStore("user");
let request = jstore.openCursor();
request.onsuccess = e => {
let cursor = e.target.result;
if (cursor) {
console.log(cursor.key, cursor.value);
cursor.continue();
}
}
}
request.onerror = e => {
console.log("error"+e.target.error);
}
}
readDB();
コンソール ログには、「wawc」データベースのテーブル「user」の内容が表示されます。