Firestore имеет пределы.
Вероятно, «Deadline Exceeded» происходит из-за его пределов.
См. это. https://firebase.google.com/docs/firestore/quotas
Максимальная скорость записи в документ 1 в секунду
blockquote>https://groups.google.com/forum/#!msg/google-cloud-firestore-discuss/tGaZpTWQ7tQ/NdaDGRAzBgAJ
Дешевый и небезопасный ответ:
Добавить
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
в коде перед вызовом https.request()
Более безопасный способ (вышеприведенное решение весь процесс узла небезопасен) отвечает в этом вопросе
Добавьте следующую переменную среды:
NODE_TLS_REJECT_UNAUTHORIZED=0
, например. с export
:
export NODE_TLS_REJECT_UNAUTHORIZED=0
(с большой благодарностью Хуанре)
Для meteorJS вы можете установить с npmRequestOptions.
HTTP.post(url, {
npmRequestOptions: {
rejectUnauthorized: false // TODO remove when deploy
},
timeout: 30000, // 30s
data: xml
}, function(error, result) {
console.log('error: ' + error);
console.log('resultXml: ' + result);
});
Вы также можете создать экземпляр запроса с параметрами по умолчанию:
require('request').defaults({ rejectUnauthorized: false })
не верьте всем тем, кто пытается ввести вас в заблуждение. в вашем запросе просто добавьте:
ca: [fs.readFileSync([certificate path], {encoding: 'utf-8'})]
Если вы включите несанкционированные сертификаты, вы вообще не будете защищены (при использовании MITM для не проверки подлинности), а работа без ssl не будет большая разница. решение должно указать сертификат ЦС, который вы ожидаете, как показано в следующем фрагменте. убедитесь, что общее имя сертификата идентично адресу, который вы вызывали в запросе (как указано в хосте): то, что вы получите, это:
var req = https.request({
host: '192.168.1.1',
port: 443,
path: '/',
ca: [fs.readFileSync([certificate path], {encoding: 'utf-8'})],
method: 'GET',
rejectUnauthorized: true,
requestCert: true,
agent: false
},
Пожалуйста, прочитайте this статьи здесь, чтобы понять:
Добавление в ответ @Armand:
Добавьте следующую переменную среды:
NODE_TLS_REJECT_UNAUTHORIZED = 0, например. с экспортом:
export NODE_TLS_REJECT_UNAUTHORIZED = 0 (с большой благодарностью Хуанре)
blockquote>Если вы используете Windows:
set NODE_TLS_REJECT_UNAUTHORIZED=0
В ваших параметрах запроса попробуйте включить следующее:
var req = https.request({
host: '192.168.1.1',
port: 443,
path: '/',
method: 'GET',
rejectUnauthorized: false,
requestCert: true,
agent: false
},
Или вы можете попробовать добавить локальное разрешение имен (hosts
файл, найденный в каталоге etc
в большинстве операционных систем, детали отличаются) примерно так:
192.168.1.1 Linksys
и next
var req = https.request({
host: 'Linksys',
port: 443,
path: '/',
method: 'GET'
...
будет работать.