2014-07-17 81 views
1

我意外地在parse.com數據瀏覽器中刪除了Installation表。如何在parse.com上重新創建已刪除的安裝表

此表包含我iOS用戶的設備數據。隨着設備ID缺失,我不能發送用戶任何推送通知

我知道重新創建一個安裝行的唯一方法是刪除並重新安裝應用程序。但這是沒有選項,因爲它完全打破了用戶體驗。

有沒有辦法從目標C代碼重新創建安裝表的行?

或者無論如何,訪問installationID和deviceToken,在這種情況下,所以我會重新創建表每手。

+0

請編輯提及更多相關信息的問題。 –

回答

1

由於所有other methods都不起作用,我更新了應用程序,將currentInstallation的所有數據保存在備份表中。

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]; 

後我得到了所有的安裝項目,我手動添加缺少的人到Installation表。儘管objectId與本地條目中的條目不匹配,但我推送了推送通知。

您也可以通過編寫一個雲端函數來處理複製作業,它可以幫助您。這可以在installationRecovery的後保存鉤子中觸發。

我也讓shure說這個代碼只在更新時執行一次。通過檢查用戶默認設置。

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