简体   繁体   中英

How to recreate deleted installation table at parse.com

I accidentally dropped the Installation table in the parse.com data browser.

This table contained device data of my iOS users. With the device ID´s missing , i can´t send the users any push notifications .

The only way I know to recreate a installation row is to delete and reinstall the app . But this is no option because it totally breaks the user experience.

Is there a way to recreate the rows of the installations table from the objective C code?

Or anyway access the installationID and deviceToken, in that case so I would recreate the table per hand.

As all other methods did not work, i updated my app in a way that saves all data of the currentInstallation in a backup table.

PFObject *backupInstallation = [PFObject objectWithClassName:@"installationRecovery"];
for (NSString *key in [PFInstallation currentInstallation].allKeys) {
    // Filter out the basic keys.
    if (![@[@"objectId", @"createdAt", @"updatedAt"] containsObject:key]) {
        [backupInstallation setObject:[PFInstallation currentInstallation][key] forKey:key];
    }
}
[backupInstallation saveInBackground];

After i got all installation entries, i manually added the missing ones to the Installation table. Although the objectId ´s did not match the ones in the local entries, i got the push notifications to work.

You can also handle the copy job by writing a cloud function that does it for you. This could be triggered in a post save hook of installationRecovery .

I also made shure that this code only executes once on update. By checking a user default setting.

NSString *backuppedInstallation = [[NSUserDefaults standardUserDefaults] boolForKey:@"backuppedInstallation"];
if (!backuppedInstallation) {
    // Your code here
    [[NSUserDefaults standardUserDefaults] setBool:@(YES) forKey:@"backuppedInstallation"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM