我在Android应用中使用Play Billing Library v1.0进行应用内结算支持,并希望允许用户在其有效期内手动续订订阅,以便在适当的时间段内对其进行延期.
当用户可以通过折扣扩展订阅时,它可以用于不同的销售(黑色星期五,新年等).
根据官方文档,这种行为确实可以实现.但我没有找到如何实现它的信息.
我使用以下标准代码购买订阅:
BillingFlowParams.Builder builder = BillingFlowParams.newBuilder()
.setSku(skuId).setType(SkuType.SUBS);
int responseCode = mBillingClient.launchBillingFlow(activity, builder.build());
Run Code Online (Sandbox Code Playgroud)
如果我再次尝试购买相同的订阅,那么
"你已经订阅了XXXXX [确定]"
出现错误消息.
我也尝试使用.addOldSku()构建器方法并在此处传递相同的sku,但它也没有帮助.
我在Android项目中使用Firebase(版本10.0.0),并遇到Firebase数据库的以下问题:
前提条件:用户使用Google帐户通过Firebase Auth登录(FirebaseAuth.getInstance().getCurrentUser()返回非空值).
FirebaseDatabase.getInstance()
.getReference()
.child(NODE_USERS).child(user.getUid()).child(NODE_DICTIONARY_VERSION)
.addListenerForSingleValueEvent(...);
W/PersistentConnection: pc_0 - Provided authentication credentials are invalid. This usually indicates your FirebaseApp instance was not initialized correctly. Make sure your google-services.json file has the correct firebase_url and api_key. You can re-download google-services.json from https://console.firebase.google.com/
之后,对Firebase数据库的所有其他调用(读取,写入,删除等)也不起作用.
为了解决这个问题,我尝试了
FirebaseAuth.getInstance().getCurrentUser() .reauthenticate(credential).addOnCompleteListener(...);
FirebaseDatabase.getInstance().goOffline(); FirebaseDatabase.getInstance().goOnline();
因此,Firebase数据库出现的问题并不常见,至少在一天过后.如果重新启动整个应用程序,问题也会消失一段时间(没有这些修复,每次都会重现问题,只有重新登录才有帮助).
无论如何,问题仍然存在,应用程序重启是一个非常糟糕的解决方案:)
知道如何解决这个问题吗?或者也许我做错了什么?
完整的Firebase日志:
12-19 13:03:40.544 D/FirebaseAuth: Notifying listeners about user ( HbY7R8FPR6QwgstQd3wmypI2nwJ2 ).
12-19 13:03:40.546 D/FirebaseApp: Notifying auth state listeners. …Run Code Online (Sandbox Code Playgroud)