我正在使用Firebase为我的Android应用程序.我已经在我的代码中的多个位置成功检索了信息,例如:
dbRef = new Firebase(Constants.URL_DB);
childRef = dbRef.child(Constants.KEY_CHILD);
objectRef = childRef.child(objectId);
// Log the URL to the object.
// This has been verified. The path is good.
Log.d("DEBUG", "To String: " + objectRef.toString());
childRef.addValueEventListener(new ValueEventListener()
@Override
public void onDataChange(DataSnapshot snapshot) {
Log.d("DEBUG", "Success");
}
@Override
public void onCancelled(FirebaseError firebaseError) {
Log.e("DEBUG", "Failure");
}
});
Run Code Online (Sandbox Code Playgroud)
完全相同的代码已在另一个活动中成功使用但由于某种原因,它在特定活动中不起作用(onDataChange永远不会被调用,也不会被onCancelled).可能是其他活动中的Firebase会话与此相冲突吗?我见过可以解决的问题:
Firebase.goOnline();
Firebase.goOffline();
Run Code Online (Sandbox Code Playgroud)
虽然我不确定我明白那些确实做了什么.也许是因为我以某种方式无法访问由push()他的id 添加的孩子?
更新:
我在objectRef中成功写入数据库,但onDataChange()仍未调用.
我正在开发一个使用 Amazon Web Services (AWS) 存储文件的 Android 项目。我有这个:
AmazonS3Client s3Client = new AmazonS3Client( new BasicAWSCredentials(myId, myKey) );
s3Client.putObject( new PutObjectRequest(myBucketName, myObjectKey, myFile) );
Run Code Online (Sandbox Code Playgroud)
它已被证明是成功的,因为我可以看到亚马逊数据库中的文件。我想知道的是我是否可以获得成功状态。如果上传成功,我希望能够执行代码,否则执行其他代码。有什么建议?