ERROR 错误:数据库未创建。必须先调用create()

bro*_*k18 8 firebase ionic-framework

您好,我的应用程序在添加基于角色的身份验证的身份验证服务后遇到此错误“数据库未创建。必须首先调用 create()”。

我可以知道解决吗?

core.js:6456 ERROR Error: Database not created. Must call create() first
    at Storage.assertDb (index.js:64)
    at Storage.set (index.js:84)
    at AuthService.login (auth.service.ts:35)
    at LoginPage.login (login.page.ts:54)
    at LoginPage_Template_ion_button_click_19_listener (template.html:45)
    at executeListenerWithErrorHandling (core.js:15285)
    at wrapListenerIn_markDirtyAndPreventDefault (core.js:15323)
    at HTMLElement.<anonymous> (platform-browser.js:560)
    at ZoneDelegate.invokeTask (zone.js:434)
    at Object.onInvokeTask (core.js:28661)
Run Code Online (Sandbox Code Playgroud)

Dan*_*nko 11

我想你使用了@ionic/storage并且错过了this.storage.create();电话。

来自文档

接下来,将 Storage 注入组件中。注意:此方法适用于单个组件(例如 AppComponent)。在这种情况下,create() 只能被调用一次。为了在多个组件中使用,我们建议创建一个服务(参见下一个示例)。

import { Component } from '@angular/core';
import { Storage } from '@ionic/storage-angular';

@Component({
    selector: 'app-root',
    templateUrl: 'app.component.html'
})
export class AppComponent {
    constructor(private storage: Storage) {}

    async ngOnInit() {
      // If using a custom driver:
      // await this.storage.defineDriver(MyCustomDriver)
      await this.storage.create();
    }
}
Run Code Online (Sandbox Code Playgroud)

对于 React、Vue、Vanilla JavaScript 逻辑类似(文档):

import { Storage } from '@ionic/storage';

const store = new Storage();
await store.create();
Run Code Online (Sandbox Code Playgroud)