我可以理解如何从服务器写入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()
方法缺少什么?
答案 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",
}
}
}