问题标签 [ionic-storage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2115 浏览

angular - 离子存储获取返回一个承诺“Bearer [object Promise]”如何返回一个值并将其用作授权令牌?

离子storage.get('token').then()函数返回一个承诺,因此它返回一个承诺对象而不是刷新令牌。

我正在使用 JWT 进行身份验证的 Ionic 4 Angular 项目。使用 HTTP 拦截器,我能够将访问令牌作为授权标头不记名令牌发送。因为 JWT 很快就会过期,所以我需要刷新令牌。我正在使用 Python 和 Flask 后端,成功登录后,服务器响应包含访问,即 JWT 和刷新令牌。在我的 Python 服务器中刷新令牌,我需要使用刷新令牌作为授权标头不记名令牌向刷新端点发出 POST 请求。作为响应,服务器向我发送访问令牌。

我遵循的步骤是:

  1. 成功登录后,我将访问令牌和刷新令牌保存在 Ionic 存储中。
  2. 使用 Angular HTTP 拦截器随每个请求发送访问令牌。
  3. 如果服务器响应出现错误并带有适当的错误响应代码,那么我正在发送刷新令牌请求,将刷新令牌添加为不记名令牌授权标头
  4. 然后从服务器响应中再次将访问令牌保存在 Ionic 存储中,并在每个请求中添加新的访问令牌。

我面临的问题是当我发送刷新令牌请求而不是发送刷新令牌作为授权标头时,请求正在发送“Bearer [object Promise]”。

问题出在我的身份验证服务和getAccessTokenUsingRefreshToken( )返回可观察值的函数中。asthis.storage.get(‘refresh_token’).then( )返回一个承诺,所以它返回一个承诺对象而不是令牌。

我的身份验证服务的代码如下:

这是我的 HTTP 拦截器代码

0 投票
2 回答
830 浏览

firebase - 在 ionic 中,如何将存储设置为登录信息,以便在重新启动应用程序时直接进入主页

我正在使用离子框架。如何将存储设置为登录信息,以便在应用程序重新启动时用户可以在一次又一次地填写登录信息时转到主页。

0 投票
1 回答
164 浏览

angular - 将带有布尔值的对象 (json) 添加到离子存储 (ionic 4)

我想在我的存储中添加一个特别的收藏,我可以将我想要的收藏数量添加到我的存储中,但我只想要 1 是我最喜欢的!有一个图像来强调你我的想法!

我希望能够存储尽可能多的收藏(按房子资格),而其他都是正常的收藏(红心)。我向您展示一些代码并更好地解释它。

搜索.page.ts

您可以在此代码上看到,当我添加一个新的收藏夹时,它的添加this.newFavorite.modified = true;false用于普通收藏夹。

我可以轻松地添加和删除它,但我想设置一个限制,我希望只有一个对象可以拥有this.newFavorite.modified = true;

search.page.html

0 投票
1 回答
191 浏览

angular - 如何在离子存储集方法中传递超过 2 个参数

在离子存储中,我想将存储设置为登录详细信息。我只能在单个 storage.set 方法中传递 3 个参数。

我有什么方法可以做到这一点。感谢您的帮助

0 投票
1 回答
380 浏览

angular - 如何在离子角度应用程序中将离子存储(本地数据库)与ngrx一起使用

如何在离子角度应用程序中将离子存储(本地数据库)与ngrx一起使用?

我找到了一些关于将 ngrx 与数据库一起用作 api 或关于 ionic-storage 的资源。但我坚持将它们放在一起(加载数据 - 粗加工操作 - 效果 - 表示可观察数据......)。

我正在尝试这个 ,但我的问题是它正在使用 http ,它在数据服务中返回一个 observable,而我正在使用返回一个承诺的离子存储。

请注意,这是我的第一个离子角度应用程序!

我需要知道完成这项任务的最佳实践,在这种特定情况下用户承诺的位置,以及我是否需要在 state 中使用 observable 或......

0 投票
2 回答
194 浏览

angular - 修改存储在 Ionic Storage 数组中的部分对象

如果一个对象存储在离子存储的数组中,我正在尝试修改一个部分。当 a === '4' 时,我想将数据 b 更改为“111”

执行我的函数后,我得到了:

我想获得:

0 投票
2 回答
558 浏览

angular - 如何在离子 4 App sqlite db 中的 1 之后启动索引数组

我正在使用此代码循环认为具有离子存储的 sqlite db

ts

这是我得到的

键列表

我使用这个 html 来查看我的列表

我希望在索引 1 之后开始循环。我尝试过“索引为 i > 1”和循环 [i > 1]。当然两者都不起作用。任何帮助将不胜感激。

0 投票
2 回答
757 浏览

asynchronous - Ionic 4 存储移除

我的 Ionic 应用程序中有一个凭证令牌存储,要执行注销操作,我需要删除存储在其中的令牌。这是我的登录服务:

在我对这项服务的测试中,我得到了以下信息:

因此,每当我运行测试时,最后一个测试用例都会失败,因为由于某种原因,令牌没有从存储中删除。这是测试输出:Error: Expected 'dGVzdExvZ2luOnRlc3RQYXNzd29yZA==' to be null. 我应该如何正确处理从存储中删除值?

0 投票
1 回答
34 浏览

ionic4 - 如何使用 ionic4 存储更新嵌套数组

使用

我可以在 sqlite 中查看我的键值对存储项目。这是 console.log 的照片

数据库的console.log

是否可以只更新 siteVehicle 数组

不删除所有其他数组?

0 投票
1 回答
443 浏览

angular - Angular/Ionic Storage,如何动态存储数据

所以我有一些代码允许用户选择联系人并将数据解析为数组。但是,问题是无法永久存储该数据,因为用户离开组件时,数据就会消失。

我一直在尝试使用 Ionic 存储来存储该数据,但我缺乏如何正确执行此操作的知识。

这是相关的代码。

这是HTML

我知道这是糟糕的代码,但我不知道如何在用户选择并检索它之后保存这个数组,当组件被调用时