这是常见/合理的用例吗? 应用程序允许用户在本地保存收藏夹,因此用户无需注册。
然后,用户随后希望共享他们的收藏夹。
因此,收藏夹数据需要从本地同步到远程。通常,用于flutter的本地存储是sqflite,而firebase / store是远程的。但是,这似乎很麻烦,因为必须将sql转换为nosql。
我认为这将是UX等的普遍问题,但是我找不到关于此问题的任何讨论?也许强迫用户创建帐户是最通用的解决方案?
答案 0 :(得分:0)
通常的理解是,如果您没有用户帐户,那么您的名称就不会与任何用户数据相关联。您不必强迫用户拥有一个帐户或将其锁定。
当他们最喜欢的东西出现时,只显示一个对话框,告诉他们“如果您没有帐户,您的收藏夹只会存储在设备上。如果您希望收藏夹随处可见,请创建一个帐户”,然后显示“创建帐户”或“不,谢谢”
创建帐户:转到帐户创建页面
否,谢谢:将设备添加到收藏夹列表中,并允许用户继续执行您的应用程序。
根据我所看到的,这里没有问题可以解决。如果您没有帐户,则无法使用帐户功能。如果您在没有输入任何内容的情况下跟踪用户,那么这也有点非法和令人毛骨悚然,因此无需限制如何跟踪同一用户。
另一种思考方式是使注册变得如此简单,以至于他们不介意并保证这样做是值得的。不会用于垃圾邮件或信息销售。以应用程序为例,即使您需要手机号来发送消息,它也只是用作唯一标识符,与设备的号码无关。
询问他们的电话号码或电子邮件,或仅询问任何电子邮件,您很可能会收到虚假信息。
您的分析怎么说?您是否收到用户说他们在其他设备上丢失了所有信息的请求?有多少人在使用您喜欢的功能?
答案 1 :(得分:0)
我可能来晚了一点,但这是我的 2 美分。
Sql 到 NoSql 的转换并不麻烦。事实上,有一个合理的用例。我对即将构建的应用有同样的要求。
无论如何,要将数据存储在 RDMDB
或 NoSQLDB
中,您需要一个数据 model
以确保您的应用程序的一致性。如果用户一直在离线使用该应用,而他们后来选择上网,您可以允许他们创建 Remote Account
,然后检查他们是否有 local
收藏夹。如果他们这样做,您必须询问他们是否愿意将它们导入到 remote
存储中。如果他们选择这样做,那么您必须从 read
存储中local
他们的收藏并将它们存储在 List<Model>
然后 map()
中,然后返回到 {{1 }} 存储。
online
可以接受 NoSqlDB
类型的数据,因此您的 json
应为此目的(以及其他)包含转换 model
和 fromMap()
。< /p>
当我开始做这件事时,我会分享我的代码(如果我记得回来的话)。