Я новичок в реализации couchbase lite, я работаю на платформе Android и создал базу данных, сохранил в ней простой документ. Теперь я хочу извлечь базу данных и просмотреть сохраненный в ней документ. Я поместил образец json в raw-папку, прочитал из raw и преобразовал в hashmap. Ниже приведены все подробности
CODE
Класс DatabaseManager для создания базы данных
package com.example.couchbasesample;
import android.content.Context;
import com.couchbase.lite.CouchbaseLiteException;
import com.couchbase.lite.Database;
import com.couchbase.lite.DatabaseConfiguration;
import java.io.File;
public class DatabaseManager {
private final static String DATABASE_NAME = "couchbase_test";
public Database database;
private static DatabaseManager instance = null;
public DatabaseManager(Context context) {
// Set database configuration
try {
// Set Database configuration
DatabaseConfiguration config = new DatabaseConfiguration(context);
File dir = context.getDir("COUCH_ANDROID",Context.MODE_PRIVATE);
config.setDirectory(dir.toString());
// Create / Open a database with specified name and configuration
database = new Database(DATABASE_NAME, config);
}
catch (CouchbaseLiteException e) {
e.printStackTrace();
}
}
public static DatabaseManager getSharedInstance(Context context) {
if (instance == null) {
instance = new DatabaseManager(context);
}
return instance;
}
}
MainActivity
package com.example.couchbasesample;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.couchbase.lite.MutableDocument;
import com.google.gson.Gson;
import org.json.JSONObject;
import java.io.InputStream;
import java.util.HashMap;
import butterknife.BindView;
import butterknife.ButterKnife;
public class MainActivity extends AppCompatActivity {
private DatabaseManager dbMgr;
@BindView(R.id.btnSave)
Button btnSave;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
// Initialize couchbase lite database manager
dbMgr = new DatabaseManager(this);
btnSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
JSONObject customerJSON = new JSONObject(getFileFromResources(MainActivity.this, "samplecustomer"));
/* HashMap<String, JSONObject> customerTest = new HashMap<>();
customerTest.put("1", customerJSON);*/
HashMap<String, Object> yourHashMap = new Gson().fromJson(customerJSON.toString(), HashMap.class);
MutableDocument doc = new MutableDocument(yourHashMap);
// 3. Save document to database.
dbMgr.database.save(doc);
Toast.makeText(MainActivity.this, "saved", Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(MainActivity.this, e.getMessage(), Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
});
}
public static String getFileFromResources(Context context, String fileName) {
String json = null;
try {
InputStream is = context.getResources().openRawResource(
context.getResources().getIdentifier(fileName,
"raw", context.getPackageName()));
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
json = new String(buffer, "UTF-8");
} catch (Exception ex) {
ex.printStackTrace();
}
return json;
}
}
ЧТО Я ПОПРОБОВАЛ
Я извлек базу данных с помощью "Обозревателя файлов устройств" из android studio, когда я сохраняю app_COUCH_ ANDROID папка и открыть файл .sqlite в DB Browser для SQLite не может просмотреть сохраненный документ, вместо этого он просто показывает случайные данные, которые я не могу понять.
![enter image description here](https://i.stack.imgur.com/KW0on.png)
* Кроме этого я исследовал и нашел следующего зрителя, но не смог использовать его в качестве своего для MA C OS.
https://github.com/couchbaselabs/CouchbaseLiteViewer*
Как я могу просмотреть базу данных couchbase lite. Может кто-нибудь помочь мне с этим? Любая помощь будет оценена.