2017-02-22 7 views
0

私はAndroid Appを開発しています。 私に教えてください、将来どのようにデータベースに新しい見積もりを追加しますか?私のアプリケーションの内容を更新するには?

私は引用文、著者、件名を書いた別のアクティビティや、この見積もりをクリックするとデータベースに追加されるなど、便利なことを望みます。しかし、そのようなユーザーは何をすることができませんでした。

私はFirebaseリアルタイムデータベースを使用する予定ですが、管理者側でアップデートを整理する方法はわかりません。 おそらく、データベースを操作するために別のアプリケーションを作成する必要がありますか? ありがとうございます。

+0

管理者でログインしているユーザのために、speical quote-added-activityを作成するだけで、firebaseセキュリティルールでそれを強制することができます。 – Linxy

答えて

0

引用符を保存するには、ユーザーが新しい引用符を追加できるScreenを実装する必要があります。そのオブジェクトを格納するためには、SQLiteデータベースを作成する必要があります(永続ストレージ用)。

あなたの用途は、そのデータベースも管理したいということです。だから、SQLiteは役に立ちません。そのような場合、リモートサーバーにデータを格納する必要があります。そこから、そのデータベースだけを管理できます。

Firebaseはそのための非常に良いオプションです。そこにもいくつかの追加機能があります。

+0

データベースと対話するにはどうすればよいですか?私のアプリケーションから?どのように人々が追加機能を見ることができないのか?データベースで作業するために別のアプリケーションを作成しますか? –

+0

- Firebase [Firebase Guide](https://firebase.google.com/docs/database/)のcomleteガイドです。 - ユーザーに応じて機能を作成するには、ユーザーの種類を保存し、それに応じて機能を表示または非表示にすることができます。 –

0

引用データベースに保存したいデータがあり、後でこれらの見積もりを更新する必要があります。

まず、あなたが今、DBの作成を行っている場合は、あなたがこの

public class DBHelper extends SQLiteOpenHelper { 
    public static final String DB_NAME = "app_db"; 
    private static final int DB_VERSION = 1; 

    public DBHelper(@ApplicationContext Application application) { 
     super(application, DB_NAME, null, DB_VERSION); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     if (db.isOpen()) { 
      //Create Quotes Table 
      QuotesDao.onCreateTable(db); 
     } 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     if (db.isOpen()) { 
      //Upgrade Contacts Table 
      QuotesDao.onUpgradeTable(db, oldVersion, newVersion); 
     } 
    } 

ようSqliteHelper何かのための実装を提供する必要がありますが、表に基本的にQuotesDaoで管理引用を持っています。

QuotesDaoは、挿入、更新、フェッチまたは削除操作を提供するQuotesテーブルのヘルパークラスです。このような 何か: -

public class QuotesDao { 
public static final String TAG = QuotesDao.class.getSimpleName(); 
public static String QUOTES = "contact_photo_url"; 

private static final String TABLE_NAME = "quotes"; 
private static final String[] ALL_COLUMNS = new String[]{ 
     QUOTES, 
}; 


public static void onCreateTable(SQLiteDatabase db) { 
    String sql = "CREATE TABLE IF NOT EXISTS " 
      + TABLE_NAME + "(" 
      + QUOTES + " TEXT" 
      + ")"; 
    db.execSQL(sql); 
} 


public static void onUpgradeTable(SQLiteDatabase db, int oldVersion, int newVersion) { 

} 


public synchronized List<Quotes> fetchQuotes(DBHelper dbHelper) { 
    SQLiteDatabase db = dbHelper.getReadableDatabase(); 
    Cursor cursor = db.query(TABLE_NAME, ALL_COLUMNS, null, null, null, null, null); 
    //Close the DB when its work is done 
    List<Quotes> quotes = null;// Parse Cursor object into Quotes list; 
    return quotes; 
} 


public synchronized long insert(DBHelper dbHelper, Quotes quotes) { 
    SQLiteDatabase db = dbHelper.getWritableDatabase(); 
    ContentValues cv = null;// Map your Object in content values ; 
    long insert = db.insertWithOnConflict(TABLE_NAME, null 
      , cv 
      , SQLiteDatabase.CONFLICT_REPLACE); 
    return insert; 
} 


public synchronized long updateQuotes(ContactInfo contactInfo, DBHelper dbHelper) { 
    //Write Update logic here 
    return id; 
} 


/** 
* Method to delete a contact from table 
* @param contactInfo Contact which need to be deleted 
* @param dbHelper DBHelper 
*/ 
public synchronized void delete(ContactInfo contactInfo, DBHelper dbHelper) { 
    SQLiteDatabase db = dbHelper.getWritableDatabase(); 
    db.delete(TABLE_NAME, null, null); 
} 

/** 
* Method to clear all the data from store contact table 
* @param dbHelper DBHelper 
*/ 
public void clear(DBHelper dbHelper) { 
    SQLiteDatabase db = dbHelper.getWritableDatabase(); 
    db.delete(TABLE_NAME, null, null); 
} 

public void onDeleteTable(SQLiteDatabase db) { 
    db.execSQL("DROP TABLE IF EXISTS '" + TABLE_NAME + "'"); 
} 

}

、将来的にあなたがより多くの引用符を追加する必要がある場合は、Insertメソッドを使用してQutesテーブル内の引用符を挿入します。

テーブルのスキーマを更新する必要がある場合は、DBバージョンをアップグレードする必要がある場合、DBHelperのonUpgradeTable()メソッドを呼び出して、テーブルのアップグレード方法の詳細についてアップグレードテーブルのビジネスロジックを記述します。 hereを参照してください。

関連する問題