小编Bri*_*yer的帖子

安全规则中的Firebase速率限制?

我启动了我的第一个开放式存储库项目EphChat,人们立即开始充斥它的请求.

Firebase是否有办法对安全规则中的限制请求进行评级?我假设有一种方法可以使用请求的时间和先前写入的数据的时间,但在文档中找不到有关如何执行此操作的任何内容.

目前的安全规则如下.

{
    "rules": {
      "rooms": {
        "$RoomId": {
          "connections": {
              ".read": true,
              ".write": "auth.username == newData.child('FBUserId').val()"
          },
          "messages": {
            "$any": {
            ".write": "!newData.exists() || root.child('rooms').child(newData.child('RoomId').val()).child('connections').hasChild(newData.child('FBUserId').val())",
            ".validate": "newData.hasChildren(['RoomId','FBUserId','userName','userId','message']) && newData.child('message').val().length >= 1",
            ".read": "root.child('rooms').child(data.child('RoomId').val()).child('connections').hasChild(data.child('FBUserId').val())"
            }
          },
          "poll": {
            ".write": "auth.username == newData.child('FBUserId').val()",
            ".read": true
          }
        }
      }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想对整个Rooms对象的db进行速率限制写入(和读取?),因此每秒只能生成1个请求(例如).

谢谢!

rate-limiting firebase firebase-security firebase-realtime-database

30
推荐指数
1
解决办法
8546
查看次数

将所有"error_log"文件添加到.gitignore

我对所有PHP error_log文件感到沮丧,导致与我的生产和dev服务器的git合并冲突.解决方案很简单 - 将所有名为"error_log"的文件添加到.gitignore - 但我不知道该怎么做.这就是我在我的.gitignore中尝试的内容:

error_log
Run Code Online (Sandbox Code Playgroud)

这只是排除了根目录中的error_log文件(而不是我运行PHP的所有其他目录).

*error_log会工作吗?

谢谢!

php git error-log gitignore

7
推荐指数
1
解决办法
2825
查看次数

使用PHP和ImageMagick将PDF转换为高质量的JPG

我正在撕扯我的头发.

我有一个300 DPI PDF,我想把它变成300 DPI JPG,即2550x3300.我被告知ImageMagick可以这样做,所以我让ImageMagick工作,但它只返回一个大小约为原始PDF大小1/5的JPG.

它不是源图像 - 我使用了几个高质量的PDF来完成它们,它们都有同样的问题.

在为StackOverflow寻找创意之后,这就是我想出来的用法:

$im = new imagick($srcimg);
$im->setImageResolution(2550,3300);
$im->setImageFormat('jpeg');
$im->setImageCompression(imagick::COMPRESSION_JPEG); 
$im->setImageCompressionQuality(100);
$im->writeImage($targetimg);
$im->clear();
$im->destroy();
Run Code Online (Sandbox Code Playgroud)

但它仍然无效.

我也尝试过使用$ img-> resizeImage()来调整JPG的大小,但如果尺寸合适,那么它的质量非常差.

完全难倒.感谢您的帮助!

php pdf imagemagick image-processing imagick

6
推荐指数
2
解决办法
2万
查看次数

在完成加载之前使用 DomNodeInserted 重写 HTML

我觉得这对于那里的任何非业余爱好者来说可能会立即显而易见,但我已经被这个问题难住了好几天。

我正在编写一个在文档开始时执行脚本的 Chrome 扩展程序。我想在加载时重写特定 DIV 的 HTML,但在它们显示给用户之前(因此用户在网站的 HTML 被我的自定义 HTML 毫不客气地替换之前看不到它)。我尝试使用的方法如下所示。

addEventListener('DOMNodeInserted', function(event){
    if(event.relatedNode.innerHTML.indexOf("contentArea")>-1){
        writeContentArea();
    }
}, false);

function writeContentArea(){

    var divtowrite = document.getElementById('contentArea');
    include(divtowrite,"contentArea.html"); //my AJAX include function

}
Run Code Online (Sandbox Code Playgroud)

现在,问题是,当页面加载和 JS 执行时,div 仍然会在被替换之前加载。奇怪的是,当我使用不同的 div 尝试此操作时,例如侧边栏,它按预期工作;即,div 在显示给用户之前被替换。我无法弄清楚为什么它适用于某些 div 而不适用于其他 div。

我不知道这是否相关,但在 Chrome 方面我有:

chrome.tabs.getSelected(null, function(tab) {

    if(tab.url.indexOf("search.php") > -1){
        chrome.tabs.executeScript(null,
            {file: "fhrun.js", allFrames: false, runAt: "document_start"}
        );
    }

});
Run Code Online (Sandbox Code Playgroud)

关于为什么这不起作用的任何想法,或者我应该使用的更好的方法?谢谢!!

javascript dom addeventlistener nodes google-chrome-extension

5
推荐指数
1
解决办法
574
查看次数

将CSV同时加载到MySQL表中

我要做的是将CSV上传到表中,同时使用JOIN将第三个表中的信息附加到目标表.

CSV import.csv(包含1M行)如下所示:

firstname | lastname
Run Code Online (Sandbox Code Playgroud)

目标表"名称"如下所示:

firstname | lastname | gender
Run Code Online (Sandbox Code Playgroud)

表"性别"(700k行)看起来像这样:

firstname | gender
Run Code Online (Sandbox Code Playgroud)

所以,我理想的查询看起来像这样:

LOAD DATA LOCAL INFILE "import.csv"
INTO TABLE names n
LEFT JOIN gender g ON(g.firstname=n.firstname)
Run Code Online (Sandbox Code Playgroud)

沿着这些方向,将导入与连接组合在一起,以便名称中的最终结果具有来自性别和CSV的数据.

但是,我知道LOAD DATA LOCAL INFILE不能与JOIN结合使用,并且尝试对每一行使用INSERT加JOIN都是CPU密集型的.

有任何想法吗?

mysql sql csv join load-data-infile

4
推荐指数
2
解决办法
4084
查看次数