未定义 Flutter sqflite openDatabase 方法

Flutter sqflite openDatabase method isn't defined

我是 flutter 开发的新手。我正在尝试使用 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 未在 class 中定义。我正在使用 sqflite:^1.1.3。我也尝试过以前的版本。但我得到了同样的错误。

找到答案了。我导入了 import package:sqflite/sqlite_api.dart' 而不是 package:sqflite/sqflite.dart 现在它工作正常

您需要导入 import 'package:sqflite/sqflite.dart';