小编red*_*dka的帖子

续集永远不会返回utf-8,只是ascii-8bit

我正在尝试连接到这个mysql数据库.DataMapper以UTF-8很好地获取所有内容,但Sequel总是返回ASCII-8bit中的字符串,这会产生.to_json错误.

为了让它发挥作用,我尝试了几件事.

Encoding.default_external = Encoding::UTF_8  
Encoding.default_internal = Encoding::UTF_8  
DB.run 'set names utf8'  
Sequel.mysql 'db', (...), :encoding => 'utf-8'  
Run Code Online (Sandbox Code Playgroud)

我有宝石:mysql(2.9.0)(试过没有),mysql2(0.3.11)和续集(3.42.0)

唯一有效的方法是手动强制对每个字符串进行编码,这个字符串不是理想的.

ruby mysql encoding utf-8 sequel

13
推荐指数
1
解决办法
1619
查看次数

某些Firebase安全规则适用于云功能中的管理员

更新或删除时,Cloud Function会收到firebase权限被拒绝错误.

使用文件中的凭据初始化服务帐户,以便使用auth.createCustomToken当前不可用于默认帐户的凭据

admin = require('firebase-admin');
functions = require('firebase-functions');
credential = admin.credential.cert(require('./credentials.json'));
admin.initializeApp({credential: credential, databaseURL: functions.config().firebase.databaseURL});
Run Code Online (Sandbox Code Playgroud)

阻止更新的安全规则:

"downloads": {
  "$key": {
    ".write": "data.val() == null"
  }
}
Run Code Online (Sandbox Code Playgroud)

与所述用户将数据插入push/downloads然后云功能试图更新并随后除去.即使管理员帐户据称绕过所有安全规则(包括验证),这两个操作都会失败.

FIREBASE WARNING: update at /downloads/-Kexz33ljYjKblF_ZgUo failed: permission_denied
FIREBASE WARNING: set at /downloads/-Kexz33ljYjKblF_ZgUo failed: permission_denied
Run Code Online (Sandbox Code Playgroud)

如果我将规则更改为此,则第一个错误(更新)消失:

"downloads": {
  "$key": {
    ".write": "newData.child('uid').val() == auth.uid"
  }
}
Run Code Online (Sandbox Code Playgroud)

UPDATE

解决方法是重新定义event.data.ref

ref = admin.database().ref(event.data.ref.path.toString())
Run Code Online (Sandbox Code Playgroud)

javascript firebase firebase-security google-cloud-functions firebase-admin

3
推荐指数
1
解决办法
1433
查看次数