我在项目中使用实时数据库,我的安全规则如下:
{ “rules”: { “.read”: “auth != null”, “.write”: “auth != null” } }
现在我想从后端服务器读取信息并将其写入数据库,同时我想在访问数据库之前对用户进行身份验证。我将只有一个用户可以访问数据库并更新数据。如何使用firebase身份验证来实现这一点?
6ljaweal1#
对于服务器端应用程序,可以使用Firebase Admin SDK来绕过任何安全规则。如果只允许服务器访问数据库,可以通过将规则设置为以下内容来阻止公共访问:
{ "rules": { ".read": false, ".write": false } }
管理SDK仍然可以访问数据库。但是,请确保服务器端功能只能由授权用户访问,并且没有API在没有任何验证的情况下公开。如果您想使用Client SDK,则必须先使用Firebase Auth SDK登录,然后才能向数据库发出请求,并允许确保安全规则允许您的用户读/写,例如:
{ "rules": { ".read": "auth.uid == 'your_uid'", ".write": "auth.uid == 'your_uid'" } }
1条答案
按热度按时间6ljaweal1#
对于服务器端应用程序,可以使用Firebase Admin SDK来绕过任何安全规则。如果只允许服务器访问数据库,可以通过将规则设置为以下内容来阻止公共访问:
管理SDK仍然可以访问数据库。但是,请确保服务器端功能只能由授权用户访问,并且没有API在没有任何验证的情况下公开。
如果您想使用Client SDK,则必须先使用Firebase Auth SDK登录,然后才能向数据库发出请求,并允许确保安全规则允许您的用户读/写,例如: