Firebase Cloud Messaging полностью бесплатна. Единственные ограничения, с которыми вы столкнетесь, в значительной степени связаны с временем жизни сообщения и, как вы уже знаете, лимитом размера сообщения (4 КБ для data
и 2 КБ для полезной нагрузки notification
).
Существует Official Firebase Pricings Страница , где вы можете увидеть, что Cloud Messaging включена бесплатно для всех своих планов (бесплатные и премиальные), калькулятор калькуляции и часто задаваемые вопросы. Но большая часть ограничений для базы данных, хранилища и т. Д.
Вы можете перечислить методы типа с помощью пакета reflect
. Например:
fooType := reflect.TypeOf(Foo{})
for i := 0; i < fooType.NumMethod(); i++ {
method := fooType.Method(i)
fmt.Println(method.Name)
}
Вы можете играть с этим здесь: http://play.golang.org/p/wNuwVJM6vr
С этим в виду, если вы хотите проверить, реализует ли тип определенного набора методов, вам может быть проще использовать интерфейсы и утверждение типа. Например:
func implementsBar(v interface{}) bool {
type Barer interface {
Bar() string
}
_, ok := v.(Barer)
return ok
}
...
fmt.Println("Foo implements the Bar method:", implementsBar(Foo{}))
Или, если вы просто хотите, что означает утверждение времени компиляции, которое имеет определенный тип, вы можете просто включить следующее:
var _ Barer = Foo{}