/**
 * Update security rules
 *
 * @return void
 */
function cx_update_security_rules()
{
    global $CX;
    require_once CX_PATH . '/core/lib/firebaseLib.php';
    // Get security rules
    $rules_json = file_get_contents(CX_PATH . '/rules.json');
    // Default path
    $path = 'https://' . $CX->opts['app_url'] . '.firebaseio.com/';
    // Connect to auth rules
    $firebase = new Firebase($path, $CX->opts['app_token']);
    // Update rules
    return json_decode($firebase->set('/.settings/rules', $rules_json));
}
 private function sync($obj)
 {
     $sync = Config::get('database.connections.firebase.sync');
     // `sync` by Default (config)?
     $path = strtolower(get_class($obj)) . 's';
     // plural collection name
     $id = \Firebase::getId($obj);
     // object ID (extracted)
     // Whitelist
     if (isset($obj->firebase) && !empty($obj->firebase) && is_array($obj->firebase)) {
         $data = [];
         foreach ($obj->toArray() as $key => $value) {
             // Filter Attributes
             if (in_array($key, $obj->firebase) !== false) {
                 $data[$key] = $value;
             }
         }
     } else {
         $data = $obj->toArray();
     }
     // Post if Allowed
     if (($sync !== false || !empty($obj->firebase)) && $obj->firebase !== false || $obj->firebase === true) {
         \Firebase::set('/' . $path . '/' . $id, $data);
     }
     return true;
 }