Description

This entity is used to store the firebase configuration for different environments/users. In order to support legacy XMPP protocol, model should have:

  • sender id
  • public key
  • server key
  • credentials.json
class FirebaseCredentials(ModelWithSignalSwitcher, ModelWithChangeLogs):
    name = models.CharField(max_length=255, null=True, blank=True)
    uuid = models.UUIDField(blank=True, null=True, default=uuid4, unique=True)
    group = models.ForeignKey(FirebaseGroup, on_delete=models.SET_NULL, null=True, related_name='credentials')
    owner_email = models.EmailField(null=True, blank=True, db_index=True)
    account_holder = models.EmailField(null=True, blank=True)
    channel_id = models.BigIntegerField(null=True, unique=True, db_index=True, blank=True)
    sender_id = models.BigIntegerField(null=True)
    server_key = models.TextField(null=True)
    public_key = models.TextField(null=True)
    android_app_name = models.CharField(max_length=255, null=True, db_index=True, blank=True)
    android_app = models.OneToOneField(
        AndroidFirebaseApp, on_delete=models.CASCADE, null=True, blank=True
    )
    credentials_json = models.TextField(null=True)
    is_active = models.BooleanField(default=True)
    deactivation_date = models.DateTimeField(null=True, blank=True)
 
  • features: