Keresés

Új hozzászólás Aktív témák

  • brd

    nagyúr

    válasz Keeperv85 #28305 üzenetére

    Szerinted ha az van a képen, hogy a Google acc.-ba menti a névjegyeket, akkor az helyileg hol lesz mentve? Megpróbálja a Google felhőbe, ahová kéred? Persze hogy megpróbálja!

    Igen, ez soha nem is volt kérdés. Csak amikor megpróbálja, akkor nem lehet megmondani, hogy csak a telefon->felhő irányt csinálja.

    ...és akkor a user beállítja a Google fiókját, amit másfél éve nem. Mit tesz a készülék? Megnézi van-e valami a felhőben: erre írtam, hogy a saját tárhelyét veszi másodlagosnak, amit már sikeresen szinkronizált, azt tartja érvényesnek, amit még nem azt nem. Mivel az előző adatbázis rekordokhoz még mindig nincsen hozzáférése, mivel azt soha sem kapott, azokat érvénytelennek fogja minősíteni és kidobja, mondván "megvan az érvényesített párja".

    Nem, rosszul tudod. Az fog történni, hogy a felhőből leszedi a csak ott lévő névjegyeket a telefonra, a csak a telefonon lévő névjegyeket pedig feltölti a felhőbe. Nincs másodlagos hely, kétirányú a szinkron. Én vettem a fáradságot és megnéztem, pontosan ez történik. (A kérdés az, hogy az azonos tartalmú névjegyekkel mit tesz. Értem itt, hogy mitől lesz neki azonos, pl. a telefonszám, vagy név egyezik, vagy ehelyett minden névjegynek van egy egyedi azonosítója, ami nem látszik a névjegyet megnézve sem, csak a DB-ben van hozzárendelve. Ezekkel valószínűleg azt teszi, hogy amelyiknek újabb az időbélyegje, az lesz az érvényes és az lesz meg mind a kettő helyen sikeres szinkron után.) Azt csináltam (hogy ne csak a levegőbe beszéljek), hogy létrehoztam egy új usert a telefonon, bejelentkeztem benne (az eredeti userprofilban is megtalálható google accal), majd gyorsan letiltottam a netet, hogy a szinkron ne tudjon lefutni. Így volt egy bejelentkezett profilom a telefonon, amelynek a telefonon üres volt a contact DB-je, a felhőben pedig ott volt az eddigi contact DB. Aztán létrehoztam egy contactot a telefonon a google acchoz lementve. Aztán elindítottam a szinkront. Teljesen meg nem lepő módon (legalábbis számomra) az történt, hogy a felhőből letöltődött a contactlista, továbbá az az egyetlen contact, ami az üres, Google által még soha nem látott helyi DB-ben szerepelt csak, felkerült a felhőbe.

    Csakhogy nálad nem ez a folyamat történt, hanem ez:

    Nem, nálam az történt, hogy a Google telefonon futó profilkezelője valamiért üresnek érzékelte a helyi DB-t (vagy egyáltalán, úgy érezte, hogy sérült a profil, a DB-t nem is vizsgálta, vagy programhiba volt, sosem tudom meg).

    Nem üresnek, hanem érvénytelennek vette.

    Üresnek látta, azért nem akart felfelé szinkronizálni. (Lásd a hozzászólásomban írt példa. Nincs érvénytelen változat, csak sérült/nem létező.)

    Nem volt az adott esetben hozzáférése, amit szintén helyreállított: törölte az érvénytelen, felhőbe soha sem mentett adatbázist és helyreállította a rekordokat onnan, ahonnan volt biztonsági mentése. A felhőből...

    Igen, érvénytelen volt, de nem azért, mert a felhőt soha nem látta, hanem azért, mert valamiért sérültnek, vagy nem létezőnek érzékelte (lásd megint fenti példa, amikor a telefonon beállítottam a Google accountot a vásárlás után, akkor is ugyanígy csináltam - másképpen nem is lehet, mert net nélkül nem lehet Google accountot létrehozni telefonon, így nem tudtam volna másfél éven keresztül ahhoz kötve elmenteni a telefonon névjegyeket).

    Sokkal egyszerűbben reprodukálom neked ezt a "hibát":

    Örülnék neki, ha tényleg megpróbálnád, mert akkor te is látnád, hogy nem úgy működik, ahogyan elképzeled. Ismétlem: én megtettem (eddig is sejtettem a leírások és logika alapján, hogy így működik, de most már biztosan tudom is).

    Van egy 7000+ névjegyet tartalmazó adatbázis egyik telón: kimentem VCF-be is, de fent van felhőben is. Elveszem a felhő felőli hozzáférést, várok egy hetet, majd csak 3000+ névjegyet visszarakok a VCF-ből: létrejött egy adatbázis, ami a felhő számára sérült, hisz nem egyezik az integritása, hiányos, módosult, jogosultság kezelése nem történt. Most úgy döntök, hogy nekem mégis kéne, amit a felhőbe tettem. Be fogom kapcsolni a szinkront. Mit tesz a rendszer?! Elkezdi a felhőben kitörölni a maradék 4000+ névjegyet az adatbázisból?! Hogyne! Szerencsére nem! Mivel az offline módosításoknak nem volt megfelelő jogosultsági szintje, érvényesnek a felhő rekordokat veszi és helyreállítja azt az állapotot. Most ebben a pillanatban, ha sikeres a szinkron, megadja az adatbázishoz szükséges összes engedélyt: ha most törölsz 3000+ névjegyet, követi a felhőben is. Menti, hogy az az új, helyes állapot. Akkor is azt teszi, ha szerinted az új VCF a helyes.

    Az attól függ, hogyan törölted a névjegyeket:
    - ha a Contact app-on belül, akkor igen, ki fogja törölni a 7000 contactot (a felhőben és a telefonon is a 3000 újonnan importált névjegy lesz), ezt pl. onnan fogod látni, hogy a szinkron közben megjelenik egy figyelmeztetés, hogy túl sok névjegy törlődött, és mit csináljon (pl. tényleg törölje-e a felhőben is) - ezt is "próbáltam", pontosan így állítottam vissza a korábban file-ba mentett contactlistámat, mert a felhőben olyan névjegy is volt, amire már nem volt szükségem, így töröltem minden contactot a telefonon (ekkor ugye éppen szinkronban volt a másfél évvel ezelőtti felhőtartalom a telefonnal a kéretlen szinkron miatt), importáltam a file-ba kimentett utolsó jót, majd indítottam szinkront, mert kíváncsi voltam, mi történik, és igen, törlődött az összes másfél éves contact a felhőből és felkerült a telefonra file-ból importált lista - számomra ez volt at elvárt viselkedés;
    - ha viszont törlöd a helyi DB file-t, majd újat hozol létre, és abba importálod a 3000 névjegyet, akkor le fogja tölteni a felhőben lévő 4000 maradék névjegyet is (a telefonon és a felhőben is ott lesz a 7000, ez történt az ebben a hozzászólásban írt példámban).

    A Windows-os példa abszolút nem illik ide, az általad írt program szektorszinten ment és állít vissza és nem DB táblákat szinkronizál (nem a file-okat, pl. háttérkép menti le és állítja vissza, hanem a partíció sectorait). Kb. úgy képzeld el az általad írt Ghost-os mentést-visszaállítást, mintha a DB-t mint file-t menthetnéd és állíthatnád csak vissza, tehát csak egy állapota lehet, nincs lehetőség merge-re, visszaállításnál a teljes addigi elvész és a mentett kerül vissza teljes egészében.

    The only real valuable thing is intuition.

Új hozzászólás Aktív témák