Флаттер sqflite метод openDatabase не определен - PullRequest
0 голосов
/ 26 апреля 2020

Я новичок в разработке. Я пытался использовать sqflite для создания базы данных sqlite в своем мобильном приложении.

import 'package:mcqlanka/src/util/constants.dart';
import 'dart:io' as io;
import 'package:path/path.dart';
import 'package:path_provider/path_provider.dart';
import 'dart:async';
import 'package:sqflite/sqlite_api.dart';

class DBHelper {
  static Database _db;

  Future<Database> get db async {
    if (_db != null) {
      return _db;
    }
    _db = await initDatabase();
    return _db;
  }

  initDatabase() async {
    io.Directory documentsDirectory = await getApplicationDocumentsDirectory();
    String path = join(documentsDirectory.path, DB_NAME);
    var db = await openDatabase(path, version: 1, onCreate: _onCreate);
    return db;
  }


  _onCreate(Database db, int version) async {
    await db.execute(
        'CREATE TABLE user (uid TEXT PRIMARY KEY, email TEXT, image TEXT)');
  }
}

Но всегда говорится, что openDatabase не определен в классе. Я использую sqflite: ^ 1.1.3. Я пробовал с предыдущими версиями тоже. Но я получил ту же ошибку.

Ответы [ 2 ]

0 голосов
/ 26 апреля 2020

нужно импортировать import 'package:sqflite/sqflite.dart';

0 голосов
/ 26 апреля 2020

Нашел ответ. Я импортировал пакет импорта: sqflite / sqlite_api.dart 'вместо пакета: sqflite / sqflite.dart Теперь он работает нормально

...