Nella mia app voglio condividere dati via iCloud con altri utenti iCloud ma non con il mondo intero ma con altri utenti iCloud selezionati.CloudKit condividi i dati tra diversi account iCloud ma non con tutti
Ho pensato a come potrebbe funzionare, ma non sono sicuro che funzionerà e se ho dimenticato o frainteso alcune cose.
Diciamo che l'utente A vuole essere in grado di condividere una stringa con altri utenti iCloud ma non con tutti. Quindi l'utente A vuole condividere "Hello World" con l'utente B ma non con l'utente C e non con l'utente D.
Quindi la mia app ha una base dati pubblica e un tipo di registrazione uguale per tutti. In quel tipo di record c'è un campo di tipo String che è uguale per tutti.
Ora l'utente A salva il record "Hello World" su iCloud. E qui arriva il trucco: aggiungerei un identificatore univoco come UUID alla stringa in modo che qualcosa come "Hello World1230ABD6-3C61-1234-802E-D866F09AC012" sia caricato su iCloud.
Ora l'utente A ha bisogno di comunicare all'Utente che desidera condividere i dati con il suo UUID, quindi l'Utente A lo comunica all'utente B. Ora l'UUID dell'utente A verrà aggiunto come Predicato alla CKSubscription dell'utente B.
Ciò consentirà all'utente B di recuperare la stringa dall'utente A, ma l'utente C o l'utente D non riceveranno una CKNotification perché non hanno l'UUID dell'utente A nella loro CKSubscription.
Funzionerà? Oppure esiste un altro modello di progettazione che consente la condivisione/sincronizzazione tramite iCloud con altri account iCloud ma non con tutti (pubblico)?
P.S. I dati che voglio condividere non sono sensibili, quindi non è necessario essere veramente sicuri. I dati non sono interessanti per tutti (pubblico) quindi devono essere condivisi solo con altri account iCloud selezionati ...
Sono grato per qualsiasi pensiero o consiglio su come ottenere questo risultato!
Grazie
Grazie per l'aiuto! Darei un'occhiata a CKReference. Un'altra domanda: nel mio caso ho una sola stringa che deve essere sincronizzata dall'utente A e dall'utente B. Non è che l'utente A e l'utente B debbano aggiungere nuovi record tutto il tempo come nuove voci di chat nell'app di chat esempio ... è un po 'come se avessi un attributo dei dati di base che sia l'utente A che l'utente B possono modificare e verrà sincronizzato all'avvio dell'app ... Quindi ho davvero bisogno di riferimenti per questo? Grazie ! – Kreuzberg
Sia l'utente A che l'utente B devono sapere quale record devono essere monitorati. Se si dispone di un meccanismo per ottenere l'ID record del record relativo all'altro utente, ciò sarebbe sufficiente. Puoi creare il tuo RecordID. Devi solo essere sicuro che sarà unico. –
Un'aggiunta. Negli ultimi 2 mesi c'è un bug in CloudKit che impedirà l'invio di notifiche di aggiornamento per le modifiche ai record. –