2017-02-22 25 views
0

Я разрабатываю приложение для Android, в котором хранятся цитаты. Скажите, пожалуйста, как добавить новые котировки в базу данных в будущем?Как обновить содержимое моего приложения?

Желательно, чтобы это было удобно, например, отдельное мероприятие, в котором я пишу цитату, автора, тему и нажав, чтобы эта цитата была добавлена ​​в базу данных. Но что бы такие пользователи не могли сделать.

Я планирую использовать базу данных реального времени Firebase, но как организовать обновление на стороне администратора, я не знаю. Возможно, мне нужно написать отдельное приложение для работы с базой данных? Спасибо заранее.

+0

Вы можете создать специальную операцию добавления котировок для зарегистрированных пользователей, которые являются администраторами, и вы можете обеспечить соблюдение правил безопасности firebase. – Linxy

ответ

0

Для хранения котировок вам необходимо реализовать экран, на котором пользователь может добавлять новые кавычки. Для хранения этого объекта вам необходимо создать базу данных SQLite (для постоянного хранения).

Но ваш usecase есть, вы также хотите управлять этой базой данных. Итак, для этого SQLite не помогает. Для этого usecase вам нужно хранить данные на удаленном сервере. Оттуда вы можете управлять этой базой данных.

Firebase - очень хороший вариант для этого, там также есть дополнительные функции.

+0

Как мне взаимодействовать с базой данных? Из моего заявления? Затем, как сделать, что люди не могут видеть дополнительные функции? Напишите отдельное приложение для работы с базой данных? –

+0

- Вот руководство для гидов для firebase [Firebase Guide] (https://firebase.google.com/docs/database/). - Для создания функциональности в зависимости от пользователя вы можете сохранить тип пользователя и в соответствии с этим вы можете показать или скрыть fuctionality. –

0

Цитаты Я надеюсь, что данные, которые вы хотите сохранить в базе данных, и вам также необходимо обновить эти цитаты позже.

Во-первых, необходимо обеспечить реализацию для SqliteHelper что-то вроде этого

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); 
     } 
    } 

Когда вы сделали с созданием БД Теперь у вас есть таблица Котировки, которые в основном управляются в 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 + "'"); 
} 

}

И в будущем, если вам нужно добавить больше цитат вы будете вставлять цитаты в Qutes таблицы, используя метод вставки.

И если вам необходимо обновить схему таблицы, то сначала вам нужно обновить версию БД, тогда вы получите вызов в методе onUpgradeTable() DBHelper, где вы можете написать логику бизнес-таблицы обновления для более подробной информации о том, как обновить таблицу см. here.

 Смежные вопросы

  • Нет связанных вопросов^_^