PDA

View Full Version : سیستم پارس



Fatemeh_
سه شنبه 19 اسفند 1393, 10:00 صبح
سلام

من میخوام یه برنامه با سیستم پارس بنویسم و به ازای هر نفر که برنامه رو نصب می کنه یک کاربر تعریف کنم و بعد برای کاربرای خاص notification ارسال کنم کسی می دونه باید چه جوری این کار رو کرد ؟؟؟ می خوام ارسال notification با اطلاعات user باشه نه install :متفکر::متفکر::متفکر::متفکر:

Nevercom
چهارشنبه 20 اسفند 1393, 14:19 عصر
در سرویس پارس این امکان رو دارید که Object (https://www.parse.com/docs/android_guide#objects) های دلخواه رو ایجاد کنید و ذخیره کنید:


ParseObject gameScore = new ParseObject("GameScore");
gameScore.put("score", 1337);
gameScore.put("playerName", "Sean Plott");
gameScore.put("cheatMode", false);
gameScore.saveInBackground();




همچنین پارس یک Object خاص داره که برای مدیریت کاربران هست، ParseUser (https://www.parse.com/docs/android_guide#users).
با استفاده از این کلاس میتونید کاربرها رو ثبت نام کنید و بعد login کنید. علاوه بر اون پارامترهای دلخواه رو هم میتونید به هر کاربر نسبت بدید.

علاوه بر اون میتونید بین این کلاس ها (یا Object ها) ارتباط برقرار کنید (https://www.parse.com/docs/android_guide#objects-pointers).
به مثال خود پارس توجه کنید:



ParseUser user = ParseUser.getCurrentUser();

// Make a new post
ParseObject post = new ParseObject("Post");
post.put("title", "My New Post");
post.put("body", "This is some great content.");
post.put("user", user);
post.saveInBackground();

// Find all posts by the current user
ParseQuery<ParseObject> query = ParseQuery.getQuery("Post");
query.whereEqualTo("user", user);
query.findInBackground(new FindCallback<ParseObject>() { ... });

Fatemeh_
یک شنبه 24 اسفند 1393, 15:44 عصر
سلام ممنون از پاسختون
در سیستم پارس امکان این هست که رکورد های تکرار ی رو که برای install ثبت میشه پاک کرد ؟؟؟
برنامه ای که برای این کار نوشته میشه چیه ؟؟؟

Nevercom
دوشنبه 25 اسفند 1393, 00:07 صبح
عملاً رکورد تکراری نداریم، اما ممکن هست برای ۱ دستگاه چند رکورد ثبت بشه، که این اتفاق در ٪۹۹ موارد فقط برای تیم توسعه اتفاق می افته چون به دفعات برنامه رو پاک می کنیم و دوباره نصب می کنیم و Parse چندین بار با Installation ID متفاوت دستگاه رو رجیستر می کنه (این ID رو در Shared Preferences داخلی ذخیره می کنه و فقط در اولین اجرا تولیدش می کنه).

برای کاربر نهایی معمولاً این اتفاق نمی افته مگر اینکه به دفعات برنامه رو Uninstall کنه و دوباره نصب کنه.

به هرحال شما تو پنلش می تونید رکوردها رو بر اساس پارامترهای مختلف فیلتر کنید و هرکدوم رو خواستید پاک کنید.

Fatemeh_
دوشنبه 25 اسفند 1393, 10:42 صبح
ولی امکان این اتفاق هست و زمانی که تعداد کاربران زیاده فیلتر کردن و پاک کردن دستی یه کار زمان گیره نمیشه قبل از این که یک رکورد در پارس به عنوان install جدید ثبت بشه چک کنیم که این گوشی قبلا رکوردی براش ثبت شده یا نه و اگه ثبت شده رکورد مربوط به این گوشی فقط اپدیت بشه یا حذف و یه رکورد جدید براش ثبت بشه مثلا از طریق وب سرویس این کارو انجام بدیم

Nevercom
سه شنبه 26 اسفند 1393, 13:39 عصر
خب شما زیاد کنترلی روی این مورد نداری.
شاید بتونی با ParseQuery چک کنی که اگه دستگاه ثبت شده باز رجیسترش نکنی.

البته من تصمیم گرفتم این رو نادیده بگیرم چون درصدش اونقدر کم هست که قابل چشم پوشی باشه.

saeid222
جمعه 21 فروردین 1394, 15:54 عصر
من با ورژن 1.9 کار کردم برای گوشی فقط و فقط یک بار اینستال میشه .ولی emulator به کرات نصب میشه . البته مشکلی نیست . گوشی میدونه با کدوم device نصب شده رویparse ارتباط داشته باشه

saeid222
جمعه 21 فروردین 1394, 15:57 عصر
میتونید روی هر اینستال, ID یوزر رو هم نگه دارید . به همین سادگی

rezashiri88
جمعه 21 فروردین 1394, 17:25 عصر
سلام دوستان ...
من یه سوالی دارم ... خیلی رو اعصابه ... کسی جواب بده ممنون می شم ...
مشکل اینه که parse به خوبی روی emulator کار می کنه ، ولی جواب نمی ده اصلا روی گوشی ...
اول فکر می کردم مشکل از proGuard هستش ... ولی بعد از اینکه کلا برشم داشتم بازم مشکل حل نشد ، کسی از دوستان به این مشکل برخورد کرده؟!
اگه آره ممنون میشم راهنمایی کنید ، اگرم نه لطفا اگه حدس می زنید مشکل از کجاست یه راهنمایی بکنید !
ممنون !

پ.ن : اگرم بگید برای استفاده از proguard از چه keep هایی استفاده می کنید ممنون میشم ... (لطفا این مورد رو دوستانی که قبلا تست کردن و جواب داده توضیح بدن ، چون تو نت زیاد جواب دادن به این ولی کار نکرد برا من اکثرا ... :| )

saeid222
شنبه 22 فروردین 1394, 00:45 صبح
مشکل اینه که parse به خوبی روی emulator کار می کنه ، ولی جواب نمی ده اصلا روی گوشی ...
اول فکر می کردم مشکل از proGuard هستش ... ولی بعد از اینکه کلا برشم داشتم بازم مشکل حل نشد ، کسی از دوستان به این مشکل برخورد کرده؟!



آقا اصلا کاری به proguard نداره . زمان develop که نباید از proguard استفاده کرد . فقط زمان خروجی گرفتن از پروژه (ساخت apk) فعالش میکنن . بگذریم ....
منم دوتا گوشی دارم روی یکیشون قشنگ داره parse کار میکنه ولی توی اون یکی نه . ضمنا روی genymotion (امولاتور) هم داره خوب کار میکنه !!!!!!!!!!!!!!!!!!!!!
منم موندم چرا ؟ خیلی تاحالا جستجو کردم ... ولی ....

گوشیت چیه ؟

rezashiri88
شنبه 22 فروردین 1394, 23:19 عصر
مشکل اینه که parse به خوبی روی emulator کار می کنه ، ولی جواب نمی ده اصلا روی گوشی ...
اول فکر می کردم مشکل از proGuard هستش ... ولی بعد از اینکه کلا برشم داشتم بازم مشکل حل نشد ، کسی از دوستان به این مشکل برخورد کرده؟!



آقا اصلا کاری به proguard نداره . زمان develop که نباید از proguard استفاده کرد . فقط زمان خروجی گرفتن از پروژه (ساخت apk) فعالش میکنن . بگذریم ....
منم دوتا گوشی دارم روی یکیشون قشنگ داره parse کار میکنه ولی توی اون یکی نه . ضمنا روی genymotion (امولاتور) هم داره خوب کار میکنه !!!!!!!!!!!!!!!!!!!!!
منم موندم چرا ؟ خیلی تاحالا جستجو کردم ... ولی ....

گوشیت چیه ؟

خوب دیگه ... منم می خوام خروجی apk بگیرم برا گوشی ... proguard به تو هیچ خطایی نمی ده ؟! ... از هیچ keep استفاده نکردی ؟! ...
من بیشتر سوالم از کساییه که برنامه دادن بیرون ... و از proguard استفاده کردن ...
مدل گوشی هم مهم نی فعلا ! ...

صرفا جهت بالا اومدن ...

Nevercom
یک شنبه 23 فروردین 1394, 13:14 عصر
محتویات فایل ProGuard برنامه ی من این هست که در اون از Parse و چند کتابخانه ی دیگه استفاده شده:

# To enable ProGuard in your project, edit project.properties# to define the proguard.config property as described in that file.
#
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in ${sdk.dir}/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the ProGuard
# include property in project.properties.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html


# Add any project specific keep options here:
-keepattributes SourceFile,LineNumberTable


-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.billing.IInAppBillingService
-keep public class * extends android.view.View {
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.content.Context {
public void *(android.view.View);
public void *(android.view.MenuItem);
}


-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}
-assumenosideeffects class android.util.Log {
public static boolean isLoggable(java.lang.String, int);
public static int v(...);
public static int i(...);
public static int w(...);
public static int d(...);
public static int e(...);
}


-libraryjars libs


-dontwarn com.facebook.**
-dontwarn com.parse.**
-dontwarn com.flurry.**
-dontwarn org.ksoap2.**
-dontwarn com.devspark.**
-dontwarn com.tjerkw.**
-dontwarn com.espian.**
-dontwarn com.nineoldandroids.**
-dontwarn org.xmlpull.**


-keep class com.facebook.** { *; }
-keep class com.parse.** { *; }
-keep class com.flurry.** { *; }
-keep class org.ksoap2.** { *; }
-keep class com.devspark.** { *; }
-keep class com.tjerkw.** { *; }
-keep class com.espian.** { *; }
-keep class com.nineoldandroids.** { *; }
-keep class org.xmlpull.** { *; }

zbd1989
سه شنبه 08 اردیبهشت 1394, 16:53 عصر
سلام
من یک باتن دارم که می خوام اگه کاربر قبلا نام کاربری رمز عبورشو زده بود وارد صفحه نمایش اطلاعات شخصیش بشه در غیر این صورت
به صفحه لاگین بره و نام کاربری رمز عبور را وارد کنه

من باید کاربر جاری رو شناسایی کنیم اما چطور !!! با تابع get current user ؟ چطور باید گقت؟ میشه کمکم کنییید خیلی واسم فوریه!!!!!


ParseUser currentUser = ParseUser.getCurrentUser();
if (currentUser != null) {
// do stuff with the user
} else {
// show the signup or login screen
}