问题标签 [grounddb]

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 投票
2 回答
437 浏览

meteor - 用于离线/在线同步的 Meteor GroundDB 粒度

假设两个用户在离线时对同一个文档进行了更改,但在文档的不同部分。如果用户2在用户1之后重新上线,用户1所做的更改会丢失吗?

在我的数据库中,每一行都包含一个 JS 对象,该对象的一个​​属性是一个数组。该数组绑定到界面上的一系列复选框。我想要的是,如果两个用户对这些复选框进行了更改,则根据进行更改的时间,而不是同步发生的时间,分别为每个复选框保留最新的更改。GroundDB 是实现这一目标的合适工具吗?有没有办法添加一个事件处理程序,我可以在其中添加一些在同步发生时触发的逻辑,这将负责合并?

0 投票
1 回答
145 浏览

angularjs - 如何确保在路由之前准备好流星本地集合

我正在使用 Meteor + AngularJS 框架。

我想根据离线集合中存储的数据(使用ground:db)来控制路由,但不能保证离线数据在路由之前准备好。

如果集合不离线,似乎有一些方法像“waitOn”或“subscriptionReady”值得研究,但离线集合不需要订阅或发布,我如何确保它们在路由之前或应用程序启动之前准备好?

关键来源片段:

1.route.js

2.collections.js

大多数情况下,LastLogin.find().count() 为0,很少会为1,实际上lastLogin 集合中有几条记录可以在登录页面显示后正确打印出来,那就太迟了我。

我尝试通过 Tracker.autorun 附上以下代码

但没有帮助。

我的最终目的是让最后一个用户自动登录,即使处于离线状态。有更好的解决方案吗?

0 投票
1 回答
200 浏览

cordova - Meteor-React:GroundDB 突然空了

[编辑]更新到 Ground DB v2,使代码更具可读性

我正在尝试在我的项目中使用 GroundDB,因此我的 Meteor-React Cordova 应用程序也可以离线运行。在主容器中,我有以下代码:

如果尚未加载此代码,则应该订阅“本地化”。本地化集合实现如下,find() 和 findOne() 方法已被覆盖以调用接地 DB 的 find():

但是,这会产生以下输出:

看起来不错,对吧?不幸的是,createContainer() 函数在此之后立即再次调用,导致

请帮我解决这个问题。提前致谢

紫杉醇

0 投票
0 回答
201 浏览

meteor - 离线时流星android应用程序登录

我正在尝试构建一个 Meteor 应用程序(主要用作 Android 移动应用程序 - 而不是来自浏览器),即使用户离线也能正常工作。出于这个原因,我使用的是Grounddb包。

如果我在连接到互联网时登录我的应用程序,一切都会按预期工作。即使用户在应用程序内断开互联网连接,一切都会按预期工作。如果用户关闭应用程序并重新打开它(离线时),问题就会开始。

调试后,我发现在应用程序启动时,如果启用了Accountsautologin(不知何故),loginWithToken则会调用方法。MeteorloginToken存在于本地存储中,也user存在于本地数据库中。方法调用失败,因为我们离线,我猜。

我对 Meteor 比较陌生,我真的不知道如何处理这个问题。我应该禁用自动登录吗?我怎样才能做到这一点?我可以以某种方式使应用程序使用本地数据库进行用户身份验证/授权吗?我在网上找到了很多类似的问题,但找不到任何答案。

0 投票
0 回答
298 浏览

meteor - 使用 ground:db 的离线流星应用

我正在使用 Meteor Application 的离线支持。我已经研究过这种支持,但所有人都给出了一个答案'ground:db'。我研究了@raix 所做的非常好的解决方案。我从那个包开始,它已经在工作了,所以我完成的第一个任务是所有集合都以以下语法为基础

之后,我尝试使用我的离线应用程序,但它仍然显示加载,并且我没有得到我的 dom 元素,之后我尝试使用我设置的所有 waitOn 订阅

之后,我可以看到我的 dom,如果我在在线时访问了该页面,那么在我离线后,我就可以看到我的数据。

现在我正在解释我的问题。

1)当我调用我的方法时,如果我离线,它不会更新我的地面集合。我使用下面的代码来恢复我的方法

当我从离线到在线时,它工作正常,它将我的数据同步到服务器,但我无法立即生效。

2)如果我想离线完整应用程序,那么我需要访问我的移动应用程序的每个页面,然后我可以离线获取该数据,但这是不可能的,所以我想要一个集中的东西,我将按下按钮,我可以将我的所有数据接地我想离线。

所以任何人都可以帮我解决上述问题

提前致谢

0 投票
0 回答
112 浏览

cordova - Meteor Cordova 离线问题

我正在尝试使用 GroundDB 使我的 Meteor App (angular-meteor) 离线。但是当我在没有 Internet 连接的情况下启动应用程序时,我收到以下消息:

Possible issue: deviceready did not fire in a reasonable amount of time. This can be caused by plugins in an inconsistent state. One possible solution: uninstall/remove all plugins and reinstall them. Additionally, one or more plugins might be faulty or out of date

我已经搜索了互联网没有任何成功,我唯一找到的是: https ://github.com/driftyco/ionic-cli/issues/259

我尝试删除 Cordova-Plugins,一次一个,一次全部删除,仍然没有准备好设备。

还有什么可能的原因?

0 投票
0 回答
67 浏览

mongodb - 如何使用 Iron-router(和 ground-db)将 mongo 集合下载为文件?

我想要做的:指定一个路由(使用iron-router),它在访问时开始下载文件。该文件包含来自应用程序 mongo-Databases 的信息。

用例:我正在开发一个流星离线网络应用程序,它也被导出为 android 应用程序。在应用程序中,用户可以保存几个不同的数据/信息。用户应该能够从应用程序内部导出和导入该数据(例如,当他想要切换设备时)。 可能有一个解决方案,这与我的(这个)方法完全不同,我当然也对此持开放态度。

附加信息:我的 mongo-Databases 是本地的(仅限客户端)使用groundDB。如果流星应用程序作为 android 应用程序运行时该解决方案也能正常工作,那将是完美的。文件的实际格式很小(类似于 csv / json / ... )。

当前方法:

基本上我正在寻找this.render(data);用某物代替的东西。确实如此(在伪代码中)this.download(data);

0 投票
1 回答
92 浏览

mongodb - Meteor 订阅仅获取新文档

只是想知道是否有办法将我的流星订阅设置为仅从 mongo 集合中加载新文档,避免同步删除和更新(因为它们与显示给用户的数据无关)。
为什么我需要那个?似乎任何时候我Meteor.subscribe在离线后做一个,整个集合都会再次从服务器发送到客户端,而我只需要新记录。

我认为这恰好是为了保持本地/远程数据库的完整性,但是由于我的应用程序计划在线/离线工作(我也在使用 groundDB),在我看来这在数据使用方面效率非常低。

提前致谢。

0 投票
0 回答
191 浏览

mongodb - 在应用程序重新启动之间保留数据时流星地面的问题:db

我正在使用流星包地面数据库“ https://github.com/GroundMeteor/db

在我的流星和离子应用程序中。我在应用程序重新启动之间面临数据持久性问题。最初,当应用程序启动并在导航应用程序期间进入离线模式时,数据将被保留。但是,如果我在离线模式下关闭并重新启动应用程序,数据就会丢失。如何在应用程序启动期间获取数据,然后在离线时重新启动应用程序时获取数据?

我的地面数据库版本是 2.0.0-rc.7,离子版本是 3.1.1

我的代码是:

在 collections.ts 中(客户端和服务器通用)

在客户端(在应用程序启动时)

客户

0 投票
1 回答
598 浏览

javascript - 离线时如何在流星的ground.db中插入数据

我有一个完整的流星应用程序,但现在我想让它离线,所以我安装了 ground:db 和 appcache 这是我的包文件:

然后我将我的收藏更改为:

现在当应用程序在线时,我可以插入数据,然后我断开应用程序并重新启动(cordova)并且没有数据丢失。

但是当我离线并且我想插入某物时。它不起作用;(。我认为我不必更改我的方法文件,但这里有一种方法只是为了确保它是否正确:

在客户端,消息的调用方式如下: import { Meteor } from 'meteor/meteor'

请帮我在离线时插入数据,因为我希望它是 100% 离线的

谢谢 ;)