如何从客户端安全地写入Firebase?

时间:2018-03-22 04:50:01

标签: javascript firebase firebase-realtime-database

我可以理解如何从服务器写入Firebase并包含用户身份验证令牌等。但我想知道是否有一种方法可以直接从客户端安全地连接到Firebase以供登录用户使用。

背景 - 背景

Firebase库提供了下面所示的set()方法,允许编写实时数据库,但似乎无论如何都不安全。为了在客户端中使用此代码,需要包含数据库凭据。

function writeUserData(userId, name, email, imageUrl) {
  firebase.database().ref('users/' + userId).set({
    username: name,
    email: email,
    profile_picture : imageUrl
  });
}

问题

是否有将用户“auth token”从客户端直接发送到firebase?

我是否需要使用其余API并在标头中提供它,或者我对set()方法缺少什么?

1 个答案:

答案 0 :(得分:1)

Firebase规则可让您从客户端安全地与firebase连接。

步骤1:在firebase数据库规则中设置规则,如下所示。

"rules": {
".read": "auth!=null", //
".write": "auth!=null" // it will not allow user to write until they are logged in.
};

步骤2:您可以设置树级别的规则,如下所示

"rules":{
"users":{
  "$uId":{ // your user Id
    ".read": "auth.uid===$uId",
      ".write": "auth.uid===$uId",
  }
 }
}

Firebase DB Rules

Firebase Rules Docs