Skip to content

Commit ab2a643

Browse files
committed
Fixed issue when creating document without name. #85
Removed "base64EncodeSafe_" as it is unnecessary.
1 parent 6ba495f commit ab2a643

File tree

4 files changed

+17
-20
lines changed

4 files changed

+17
-20
lines changed

Authenticate.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ function getAuthToken_ (email, key, authUrl) {
1414
const jwt = createJwt_(email, key, authUrl)
1515

1616
var options = {
17-
'payload': 'grant_type=' + decodeURIComponent('urn:ietf:params:oauth:grant-type:jwt-bearer') + '&assertion=' + jwt
17+
'payload': 'grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion=' + jwt
1818
}
1919
const responseObj = new FirestoreRequest_(authUrl, null, options).post()
2020
return responseObj.access_token
@@ -49,13 +49,13 @@ function createJwt_ (email, key, authUrl) {
4949
'iat': nowSeconds
5050
}
5151

52-
const jwtHeaderBase64 = base64EncodeSafe_(JSON.stringify(jwtHeader))
53-
const jwtClaimBase64 = base64EncodeSafe_(JSON.stringify(jwtClaim))
52+
const jwtHeaderBase64 = Utilities.base64EncodeWebSafe(JSON.stringify(jwtHeader))
53+
const jwtClaimBase64 = Utilities.base64EncodeWebSafe(JSON.stringify(jwtClaim))
5454

5555
const signatureInput = jwtHeaderBase64 + '.' + jwtClaimBase64
5656

5757
const signature = Utilities.computeRsaSha256Signature(signatureInput, key)
58-
const encodedSignature = base64EncodeSafe_(signature)
58+
const encodedSignature = Utilities.base64EncodeWebSafe(signature)
5959

6060
return signatureInput + '.' + encodedSignature
6161
}

Util.js

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -43,18 +43,6 @@ function isNumberNaN_ (value) {
4343
return typeof (value) === 'number' && isNaN(value)
4444
}
4545

46-
/**
47-
* Base64 Encodes a string without equals (=) symbol
48-
*
49-
* @private
50-
* @param {string} string string to encode
51-
* @returns {string} base64 encoded string (without =)
52-
*/
53-
function base64EncodeSafe_ (string) {
54-
const encoded = Utilities.base64EncodeWebSafe(string)
55-
return encoded.replace(/=/g, '')
56-
}
57-
5846
/**
5947
* Send HTTP request with provided options
6048
*

Write.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,18 @@
1010
* @return {object} the Document object written to Firestore
1111
*/
1212
function createDocument_ (path, fields, request) {
13-
request.addParam('currentDocument.exists', false)
14-
return updateDocument_(path, fields, request)
13+
const pathDoc = getDocumentFromPath_(path)
14+
const documentId = pathDoc[1]
15+
16+
// Use UpdateDocument to create documents that may use special characters
17+
if (documentId) {
18+
request.addParam('currentDocument.exists', false)
19+
return updateDocument_(path, fields, request)
20+
}
21+
22+
const firestoreObject = createFirestoreDocument_(fields)
23+
const newDoc = request.post(pathDoc[0], firestoreObject)
24+
return unwrapDocumentFields_(newDoc)
1525
}
1626

1727
/**

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "firestore_google-apps-script",
3-
"version": "25",
3+
"version": "26",
44
"description": "A Google Apps Script library for accessing Google Cloud Firestore",
55
"homepage": "https://github.com/grahamearley/FirestoreGoogleAppsScript",
66
"bugs": "https://github.com/grahamearley/FirestoreGoogleAppsScript/issues",
@@ -11,7 +11,6 @@
1111
"FirestoreRequest_",
1212
"UrlFetchApp",
1313
"Utilities",
14-
"base64EncodeSafe_",
1514
"cleanPath_",
1615
"createDocument_",
1716
"createFirestoreDocument_",

0 commit comments

Comments
 (0)