Ошибка 603 при попытке подключения к Firebase

# #firebase-realtime-database #httprequest #sim800l

Вопрос:

Я хочу отправить запрос POST с модуля SIM800L на firebase. До сих пор я получил только ошибку 603, которая говорит мне, что у меня нет права доступа?

Когда я отправляю тот же запрос от почтальона, установленного на моем ноутбуке, он работает нормально, доступ для чтения и записи установлен в значение true.

Должен ли я отправить какой-то маркер аутентификации с запросом или что-то в этом роде?

Заранее спасибо


Это код для arduino, управляющего модулем SIM800L

 #define SIM800L_RX     27
#define SIM800L_TX     26
#define SIM800L_PWRKEY 4
#define SIM800L_RST    5
#define SIM800L_POWER  23

String apn = "internet.eplus.de";      //APN
String apn_u = "eplus";                //APN-Username
String apn_p = "gprs";                 //APN-Password
String url = "https://benchmark-7913c-default-rtdb.europe-west1.firebasedatabase.app/.json";  //URL of Server

void setup()
{
  pinMode(SIM800L_POWER, OUTPUT);
  digitalWrite(SIM800L_POWER, HIGH);

  Serial.begin(115200);
  Serial.println("ESP32 SIM800L AT CMD Test");
  Serial2.begin(9600, SERIAL_8N1, SIM800L_TX, SIM800L_RX);
  delay(15000);
  while (Serial2.available()) {
    Serial.write(Serial2.read());
  }
  delay(2000);
  gsm_config_gprs();

  gsm_http_post("{"test" : "true"}");
  Serial.println("Done");
}


void loop() {
  
}

void gsm_http_post( String postdata) {
  Serial.println(" --- Start GPRS amp; HTTP --- ");
  gsm_send_serial("AT SAPBR=1,1");
  gsm_send_serial("AT SAPBR=2,1");
  gsm_send_serial("AT HTTPINIT");
  gsm_send_serial("AT HTTPPARA=CID,1");
  gsm_send_serial("AT HTTPPARA="URL","   url);
  gsm_send_serial("AT HTTPPARA=CONTENT,application/x-www-form-urlencoded");
  gsm_send_serial("AT HTTPDATA=192,5000");
  gsm_send_serial(postdata);
  gsm_send_serial("AT HTTPACTION=1");
  gsm_send_serial("AT HTTPREAD");
  gsm_send_serial("AT HTTPTERM");
  gsm_send_serial("AT SAPBR=0,1");
}

void gsm_config_gprs() {
  Serial.println(" --- CONFIG GPRS --- ");
  gsm_send_serial("AT SAPBR=3,1,Contype,GPRS");
  gsm_send_serial("AT SAPBR=3,1,APN,"   apn);
  if (apn_u != "") {
    gsm_send_serial("AT SAPBR=3,1,USER,"   apn_u);
  }
  if (apn_p != "") {
    gsm_send_serial("AT SAPBR=3,1,PWD,"   apn_p);
  }
}

void gsm_send_serial(String command) {
  Serial.println("Send ->: "   command);
  Serial2.println(command);
  long wtimer = millis();
  while (wtimer   3000 > millis()) {
    while (Serial2.available()) {
      Serial.write(Serial2.read());
    }
  }
  Serial.println();
}
 

Ответ №1:

Похоже, вы добавляете .json в конец URL-адреса перед назначением местоположения базы данных. Ошибка 603 просто означает, что местоположение, к которому вы пытаетесь получить доступ, просто не существует.

Пример URL-адреса: https://docs-examples.firebaseio.com/rest/saving-data/fireblog/posts.json

Документация: https://firebase.google.com/docs/database/rest/retrieve-data