1

这是一个常见/合理的用例吗?应用程序允许用户在本地保存收藏夹,以便用户无需注册。

然后用户随后希望分享他们的最爱。

因此收藏夹数据需要从本地同步到远程。Flutter 通常的本地存储是 sqflite,而 firebase/store 是远程。但是,这似乎很麻烦,因为 sql 到 nosql 的转换是必要的。

我认为这对于 UX 等来说是一个普遍问题,但我找不到任何关于这个问题的讨论?也许强迫用户创建一个帐户是最通用的解决方案?

4

2 回答 2

0

普遍的理解是,如果您没有用户帐户,那么您就不能拥有与您的姓名相关联的任何用户数据。您不必强制用户拥有帐户或将其锁定。

当他们喜欢某些东西时,只需显示一个对话框,告诉他们“如果您没有帐户,您的收藏仅存储在设备上。如果您希望您的收藏在任何地方都可用,请创建一个帐户”,然后显示“创建帐户”选项或“不,谢谢”

创建帐户:转到帐户创建页面

不,谢谢:将设备添加到收藏夹列表并让用户继续执行您的应用程序所做的事情。

从我所看到的来看,这里没有问题需要解决。如果您没有帐户,则无法获得帐户功能。如果您在没有输入任何内容的情况下跟踪用户,这也有点非法和令人毛骨悚然,因此无需限制如何跟踪同一用户。

另一种思考方式是让注册变得如此简单,他们不介意,并保证这是值得的。不会用于垃圾邮件或信息销售。以what's app为例,虽然你需要手机号码来发送消息,但它只是作为唯一标识符使用,与设备号码无关。

询问他们的电话号码或电子邮件或任何电子邮件,您很可能会收到虚假信息。

你的分析说明了什么?您是否收到来自用户的请求,说他们在不同的设备上丢失了所有信息?有多少人在使用您最喜欢的功能?

于 2019-03-06T04:42:59.717 回答
0

我在这里参加聚会可能有点晚了,但这是我的 2 美分。

Sql 到 NoSql 的转换并不麻烦。事实上,这有一个合理的用例。我对即将构建的应用程序有相同的要求。

无论如何,要存储数据,RDMDB否则NoSQLDB您将需要数据model来确保应用程序的一致性。如果用户一直离线使用应用,后来又选择上线,您可以允许他们创建Remote Account,然后检查他们是否有local收藏夹。如果他们这样做,您将不得不询问他们是否愿意将它们导入remote存储。如果他们选择这样做,那么您将不得不将read他们的收藏夹从local存储中取出并将它们存储在一个List<Model>然后map()返回到online存储中。

NoSqlDB可以接受json类型数据,因此您model应该包括转换fromMap()toJson()为此目的(和其他目的)。

当我开始这样做时,我将分享我的代码(如果我记得回到这里)。

于 2021-02-03T12:46:05.617 回答