根据firebase rest api安全规则对用户进行身份验证

根据firebase rest api安全规则对用户进行身份验证,firebase,firebase-realtime-database,firebase-authentication,google-cloud-functions,firebase-security,Firebase,Firebase Realtime Database,Firebase Authentication,Google Cloud Functions,Firebase Security,我有一个基本的安全规则来检查用户是否经过身份验证 { "rules": { "users": { "$user_id": { ".write": "auth != null" } } } } 当从客户端应用程序发送访问令牌时,如何获取firebase安全规则以确认云函数中的身份验证数据 请求方法=Post import * as admin from 'firebase-admin' const DEPLOYED = false

我有一个基本的安全规则来检查用户是否经过身份验证

{
  "rules": {
    "users": {
      "$user_id": {
        ".write": "auth != null"
      }
    }
  }
}
当从客户端应用程序发送访问令牌时,如何获取firebase安全规则以确认云函数中的身份验证数据

请求方法=Post

import * as admin from 'firebase-admin'

const DEPLOYED = false;

admin.initializeApp()

const ValidateToken = (request: any, response: any) => {

    const params = {
        a: request.body.token, // Client Validation
    }

    const ValidateToken = admin.auth().verifyIdToken(params.a).catch((error) => { throw { Message:error }});

    return Promise.all([ValidateToken]).then((res: any) => {
        return DEPLOYED ? res : response.status(200).json(res);
    }).catch(error => {
        return DEPLOYED ? error : response.status(400).json(error);
    });
}

export default ValidateToken;
提供200个响应和用户数据

更新用户名

import FBApp from '../utils/admin'

FBApp

const UpdateUsername = (request: any, response: any) => {

    const params = {
        a: request.body.UID,
        b: request.body.username
    }

    const UpdateProfile = FBApp.database().ref('users').child(`${params.a}/username`).set(`@${params.b}`).catch((error) => { throw { Message:error }});

    return Promise.all([UpdateProfile]).then((res: any) => {
        response.status(200).json(res);
    }).catch(error => {
        response.status(400).json(error);
    });
}

export default UpdateUsername;

授予被拒绝的权限

要使云功能正常工作和运行,它们具有管理权限,这意味着它们“绕过”Firebase上设置的安全规则。因此,您只需要设置规则,以保护应用程序不受未经身份验证的用户的攻击

除此之外,我在下面找到了这篇文章,这篇文章还应该为您提供更多关于使用云函数和Firebase规则的信息


如果这些信息对你有帮助,请告诉我

准确地说,如果有人遇到这个问题,从这个链接。