Я новичок в Firebase, и я, наконец, получил данные из Firebase для флаттера. Я работаю с цветами, и на каждой карточке есть цвет и номер цвета.
У меня есть в Firebase: поле colorCode, которое является строкой и имеет значение «0xFFFFB142».
Во Flutter я пытался сделать это так:
final int colorCode = list[index]['colorCode'].hashCode;
Container(
height: 25.0,
width: 25.0,
color: Color(colorCode),
),
У меня нет провала, но я не вижу цвета.
Это должно быть целое число, но в строковом коде это шестнадцатеричное число. Когда я пытаюсь ввести int в Firebase, я получаю ошибку, потому что это шестнадцатеричный формат.
Обновление: Спасибо всем за вашу помощь! Я сам ввел код в Firebase. Это то же самое, что вы обычно указываете в этом месте, например, color: Color(0xFFFFB142), где FFB142 — это цвет #FFB142. В Firebase я использовал строку, потому что int или обычный код не разрешены. С моим кодом, когда я его печатаю: он получил 171924876, это неправильный код цвета.
Я пробовал это:
final dynamic colorCode =
list[index]['colorCode'].toString();
print(colorCode); // the right color code is printend: 0xFFFFB142
И когда я вставил это:
Container(
height: 25.0,
width: 25.0,
color: Color(0xFFFFB142),
Он отлично работает, но у меня есть для каждого элемента другой colorCode в Firebase.
Мне очень странно, что я получил это сообщение об ошибке, потому что мне нужен не int, а цветовой код, например 0xFFFFB142.
type 'String' is not a subtype of type 'int'
Надеюсь, вы можете мне помочь!
colorCode
в консоль? - person Gabe   schedule 23.02.2020171924876
не очень хороший цвет. Где вы его взяли и как вы вставили его в Firebase? - person Richard Heap   schedule 24.02.2020Color(colorCode)
, используйтеconvertToColor(colorCode)
- person Richard Heap   schedule 24.02.2020