Firebase数据库管理未注册用户

Firebase数据库管理未注册用户,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,我正在做一个项目,我必须处理未注册的用户,这些用户已经添加到组中,但仍然没有在应用程序中注册 我现在要做的是在我的“用户”数据库中创建一个新的子项,将我知道的关于这个未注册用户的所有信息都放在数据库中。 当然,它也有一个id 此id将用于表示该用户,因此它将在数据库的许多地方使用 当这个用户试图注册自己时,问题就出现了。因为在创建新用户时,不可能强制使用他已有的“id”,Firebase将为他创建一个新id 然后,在db中,我需要用新id更改“旧id”的所有引用 有更好的方法吗?1)您可以使用另

我正在做一个项目,我必须处理未注册的用户,这些用户已经添加到组中,但仍然没有在应用程序中注册

我现在要做的是在我的“用户”数据库中创建一个新的子项,将我知道的关于这个未注册用户的所有信息都放在数据库中。 当然,它也有一个id

此id将用于表示该用户,因此它将在数据库的许多地方使用

当这个用户试图注册自己时,问题就出现了。因为在创建新用户时,不可能强制使用他已有的“id”,Firebase将为他创建一个新id

然后,在db中,我需要用新id更改“旧id”的所有引用

有更好的方法吗?

1)您可以使用另一个“假”表来重新映射id,也就是说,您可以在用户注册时向“假”表添加新实例,而不是更改旧id及其引用。当需要使用简单服务时,您可以找到相应的id


2) 其次,您可以自己进行身份验证,我的意思是,您可以开发自己的注册服务,并在注册中自己定义id。如果系统已经很大而且很难改变。第一种选择是合适的,但在时间方面会有一些成本

谢谢你的回复。开发我自己的身份验证系统听起来太难,太耗时了。我会选择第一个选项,我已经考虑过了,但是这个选项在寻找具有特定id的用户时会让事情变得更糟。目前我只查看用户表,查询具有所需id的用户。使用另一个表意味着,进行相同的查询,然后检查是否有相关的假id,并再次查看该假id。也许,如果这是唯一的选择,最好开发一些http函数,用新id替换旧id。是的,但问题是您的结构,我建议尽快更改您的结构。因为过一段时间后,这会变得很难。你是说问题出在我的结构上?您将如何更改它?我的意思是使用firebase注册服务有时会导致问题,就像您的情况一样,我也经历过这种情况。在不更改注册服务的情况下更改当前结构中的任何内容可能不会花费太多,但效率会很低。然而,如果你可以改变你的注册服务,你不会失去效率,但它只是需要一段时间来发展。也许这对not来说不是一个大问题,但如果您的系统变得足够大的话,它在未来可能会是一个真正的问题。