Firebase保存与用户相关的数据

pfaehlfd

我目前正在编写一个android应用。在我的应用中,用户可以对某些对象进行评分。数据(对象和等级)应存储在Google Firebase中,尤其是Firestore中。我已经将我的应用程序链接到Firebase并实现了com.google.android.gms.auth.api.signin以获取GoogleSignInAccount当前用户。


我想将数据保存到数据库中,例如:

SomeObject: | objectId | name |

ObjectRating: | ratingId | objectId | userId | rating |

我不确定的是,另存为userId。的文档GoogleSignInAccount.getId()说:

重要提示:请勿使用此返回的Google ID将当前登录的用户传达给您的后端服务器。而是发送一个ID令牌(requestIdToken(String)),该令牌可以在服务器上安全地进行验证。或发送服务器身份验证代码(requestServerAuthCode(String)),然后可以将其替换为ID令牌。

因此,我可能不应该使用此功能。但是推荐的方法IdToken是签名的,因此我认为每次调用该方法都会有所不同。

大多数人所做的就是在数据库中创建一个用户目录。但是从应用程序中,我想获得用户评分以及给定对象的所有用户的总体平均评分。因此,我认为将评级分为多个用户表会使整体平均评级的计算复杂化。

我的问题是:如何将ObjectRating链接到用户,而又不使用不安全的方法,getId()同时仍然能够通过objectId选择所有ObjectRatings以计算平均评分?

格里姆索尔

要获取用户的唯一标识符,可以使用FirebaseAuth获取FirebaseUser对象:

FirebaseAuth.getInstance().getCurrentUser().getUid();

getUid()方法:

返回一个字符串,该字符串用于在Firebase项目的用户数据库中唯一标识您的用户。在Firebase数据库或存储中,甚至在您自己的后端中存储信息时,请使用它。

在调用之前,您需要确保已使用GoogleSignInAccount进行Firebase的身份验证getCurrentUser(),否则它将返回null

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Firebase Firestore获取与用户相关的数据

android firebase 数据库保存当前用户的数据

Android Firebase向用户细分发送通知以保存数据

无法在Firebase数据库iOS中保存用户

Firebase数据库:如何保存每个用户的好友列表?

使用Firebase在特定用户UID下保存数据

将数据保存到Firebase用户对象中

禁止 save() 以防止由于未保存的相关对象“用户”而导致数据丢失

Android Firebase中的常见做法:如何存储与已签名用户相关的数据?

使用Firebase用户UID作为相关数据库条目的密钥-好的还是不好的做法?

有没有办法延迟删除Firebase用户及其相关数据?

Firebase如何删除相关数据

保存用户输入数据

Firebase - 将图片与用户相关联?

我如何读取特定用户的相关数据

存储与用户相关的数据,仅此而已

Firebase 保存数据

从Firebase保存大量数据

Firebase 数据未保存

春天的数据不保存相关实体

如何使用相关数据保存记录

实体框架的核心不保存相关数据

实体框架的核心不保存相关数据

CakePHP-保存相关模型数据

如何将每个Firebase用户与他们自己的recycler相关联查看数据

如何从承载令牌中检索Cognito用户的唯一标识符以将与用户相关的数据保存在Web api后端中

删除用户时如何删除用户相关数据?

在 Firebase 注册后立即将用户信息保存到数据库中

如何使用 Firebase 实时数据库保存用户信息?