Я думаю, что вы путаете типы
getString
возвращает объект String, который может быть преобразован в символ [] с использованием методов класса String.
Я полагаю, что ваш newMessage
имеет тип char [] или char *.Тогда я бы посоветовал вам перейти к методу String.c_str (), потому что он возвращает строку в стиле C с нулевым символом в конце, то есть char *.См. https://www.arduino.cc/reference/en/language/variables/data-types/string/functions/c_str/ для справки.
Он также устанавливает последний символ строки равным 0. Так что методы, такие как strlen, strcmp и т. Д. Будут работать.
!будьте осторожны, чтобы не изменять массив, возвращаемый c_str (), если вы хотите изменить его, вы можете скопировать символ [] или использовать string.toCharArray(buf, len)
.
Ваш код может выглядеть следующим образом.
String msg = Firebase.getString("Submit Message");
newMessage = msg.c_str();
// rest of your code
Если newMessage
является буфером для хранения нескольких сообщений, то есть char* newMessage[3]
.
String msg = Firebase.getString("Submit Message");
newMessage[putIndex] = msg.c_str();
// rest of your code
Будьте осторожны, поскольку вы храните несколько символов в массиве, поэтому используйте strcmp для сравнения этихмассивы!
Если вы новичок в CI, рекомендую прочитать.