java - 没有得到正确的 Firebase 字符串 Android
问题描述
我正在尝试从嵌套集合中获取字符串引用,但它会生成一个随机字符串,我不明白为什么,因为我将它设置在另一个类中并且它可以正常工作(但这是顶级集合。
我保存如下:
String folderFirebaseString;
-----------------------
folderFirebaseString = collectionReference.document("User_" + JournalApi.getInstance().getUserId()).collection("Created_Folders").document().getId();
final FolderJournal folderJournal = new FolderJournal();
folderJournal.setTitle(title);
folderJournal.setUserId(currentUserId);
folderJournal.setFolderId(folderFirebaseString);
Log.d(TAG, "folderFireBaseString: " + folderFirebaseString);
//Collection Reference --> Journal <-- document --> unique userID + username entered at registration <-- Collection for Titles --> titleTextView
db.collection("Journal").document("User_" + JournalApi.getInstance().getUserId()).collection("Created_Folders").document().set(folderJournal).addOnSuccessListener(new OnSuccessListener<Void>() {
public void onSuccess(Void aVoid) {
Log.d(TAG, "onSuccess FULL PATH: "+ db.collection("Journal").document("User_" + JournalApi.getInstance().getUserId()).collection("Created_Folders").document().getId());
progressBar.setVisibility(View.INVISIBLE);
Intent intent = new Intent(FolderCreation.this, FoldersActivity.class);
startActivity(intent);
finish();
}
})
我folderFirebaseString
返回一个随机字符串,就像LogD
我设置的返回一个不同的随机字符串一样,但是db.collection...
firebase中的(等等......)随机生成的字符串实际上是别的东西。
在另一个类中,我进行了此设置,但正如它一样collectionReference = db.collection("CollectionNameHere").getDocument().getId();
,它可以工作并获得正确的字符串。我究竟做错了什么?
解决方案
我设法通过预先生成一个firebase字符串然后将它传递给它自己来解决这个问题。
String folderFirebaseString;
-----------------------
folderFirebaseString = collectionReference.document("User_" + JournalApi.getInstance().getUserId()).collection("Created_Folders").document().getId();
final FolderJournal folderJournal = new FolderJournal();
folderJournal.setTitle(title);
folderJournal.setUserId(currentUserId);
folderJournal.setFolderId(folderFirebaseString);
//Collection Reference --> Journal <-- document --> unique userID + username entered at registration <-- Collection for Titles --> titleTextView
db.collection("Journal").document("User_" + JournalApi.getInstance().getUserId()).collection("Created_Folders").document(**folderFirebaseString**).set(folderJournal).addOnSuccessListener(new OnSuccessListener<Void>() {
public void onSuccess(Void aVoid) {
Log.d(TAG, "onSuccess FULL PATH: "+ db.collection("Journal").document("User_" + JournalApi.getInstance().getUserId()).collection("Created_Folders").document(*###folderFirebaseString###*).getId());
progressBar.setVisibility(View.INVISIBLE);
Intent intent = new Intent(FolderCreation.this, FoldersActivity.class);
startActivity(intent);
finish();
}
})
推荐阅读
- python - 如何在pygame中使用event.unicode删除字符串中添加的元素?
- python - 运行在服务器上创建网页的 Python 脚本
- node.js - 如何允许将纯文本过滤到 NodeJS 和 PUG 中的 HTML 标签中?
- python - django 过滤多个 GET 参数
- python - Python列表:在项目之前和之后添加字符串
- django - Django CustomUser 注册属性错误:“str”对象没有属性“META”
- python - 从 txt 文件加载字典中的缺失值
- reactjs - 在反应中使用 Firebase 存储
- latex - 包括 RMarkdown 中的整个书目条目 - 相当于 \fullcite?
- java - @JsonSerialize 没有从控制器 springboot 2.2.4 转换我的日期格式