Да, вы можете отправить push-уведомление через Firebase. Пожалуйста, не включайте серверный ключ в свой клиент. Есть способы «для не очень хороших людей» найти его и сделать что-то ... Правильный способ добиться этого - это для вашего клиента указание вашему приложению-серверу отправить уведомление.
Вы должны отправьте HTTP-сообщение в конечную точку Google-API.
Вам понадобятся следующие заголовки:
Content-Type: application/json
Authorization: key={your_server_key}
You can obtain your server key within in the Firebase-Project.
HTTP-Post-Content: Sample
{
"notification": {
"title": "Notification Title",
"text": "The Text of the notification."
},
"project_id": "<your firebase-project-id",
"to":"the specific client-device-id"
}
ИМХО, принятый ответ может быть улучшен, чтобы лучше отражать структуру данных OP
before
и after
и [1112 ] Для достижения этого есть два варианта:
scale_discrete()
. В приведенном ниже коде используются оба метода:
library(ggplot2)
library(tidyr)
library(dplyr)
df %>%
mutate(type = forcats::fct_inorder(type)) %>% # preserve row order
gather("var", "share", before, after) %>%
ggplot(aes(x = var, y = share, fill = type)) +
geom_col(position = "fill") +
scale_x_discrete(limits = c("before", "after"), name = NULL) + # specify column order
scale_y_continuous(labels = scales::percent)
для создания графического эквивалента данных OP:
Кроме того, geom_col()
используется в качестве ярлыка для geom_bar(stat = "identity")
, а ось у соответственно помечена.
Поскольку ОП не предоставил воспроизводимый набор данных, но разместил изображение данных, я использовал онлайновый сервис OCR для преобразования снимка экрана в текст. (Ради полноты: если вы искали «online ocr» и выбрали случайным образом https://www.newocr.com/ , что вначале дает желаемый результат).
Затем результат распознавания был скопирован в фрагмент кода ниже:
df <- readr::read_table2(
"type before after
january 297 237
february 182 67
march 234 34
april 55 117")
Вот обобщенный способ получить столбчатую диаграмму в процентах с использованием ваших данных (сгенерированную, потому что я не уверен, что именно вы запрашиваете, как отмечено в моем комментарии выше):
require(tidyverse)
df %>% gather("var", "val", before, after) %>%
ggplot(aes(x=var, y=val,fill=type)) +
geom_bar(stat="identity",position="fill")
Это дает вам это - это то, что вы ищете?